diff --git a/include/asm-s390/pgtable.h b/include/asm-s390/pgtable.h index 76e8a7904e8a9c8bda3fa560b62bed1368208bfe..f8347ce9c5a124b58cfb311a68021eaf5437c7a2 100644 --- a/include/asm-s390/pgtable.h +++ b/include/asm-s390/pgtable.h @@ -220,6 +220,8 @@ extern char empty_zero_page[PAGE_SIZE]; /* Software bits in the page table entry */ #define _PAGE_SWT 0x001 /* SW pte type bit t */ #define _PAGE_SWX 0x002 /* SW pte type bit x */ +#define _PAGE_SPECIAL 0x004 /* SW associated with special page */ +#define __HAVE_ARCH_PTE_SPECIAL /* Six different types of pages. */ #define _PAGE_TYPE_EMPTY 0x400 @@ -520,7 +522,7 @@ static inline int pte_file(pte_t pte) static inline int pte_special(pte_t pte) { - return 0; + return (pte_val(pte) & _PAGE_SPECIAL); } #define __HAVE_ARCH_PTE_SAME @@ -722,6 +724,7 @@ static inline pte_t pte_mkyoung(pte_t pte) static inline pte_t pte_mkspecial(pte_t pte) { + pte_val(pte) |= _PAGE_SPECIAL; return pte; }