diff options
Diffstat (limited to 'include/asm-s390/pgtable.h')
-rw-r--r-- | include/asm-s390/pgtable.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/asm-s390/pgtable.h b/include/asm-s390/pgtable.h index c7f4f8e3e297..0bdb704ae051 100644 --- a/include/asm-s390/pgtable.h +++ b/include/asm-s390/pgtable.h | |||
@@ -29,6 +29,7 @@ | |||
29 | * the S390 page table tree. | 29 | * the S390 page table tree. |
30 | */ | 30 | */ |
31 | #ifndef __ASSEMBLY__ | 31 | #ifndef __ASSEMBLY__ |
32 | #include <linux/sched.h> | ||
32 | #include <linux/mm_types.h> | 33 | #include <linux/mm_types.h> |
33 | #include <asm/bitops.h> | 34 | #include <asm/bitops.h> |
34 | #include <asm/bug.h> | 35 | #include <asm/bug.h> |
@@ -223,6 +224,9 @@ extern char empty_zero_page[PAGE_SIZE]; | |||
223 | #define _PAGE_SPECIAL 0x004 /* SW associated with special page */ | 224 | #define _PAGE_SPECIAL 0x004 /* SW associated with special page */ |
224 | #define __HAVE_ARCH_PTE_SPECIAL | 225 | #define __HAVE_ARCH_PTE_SPECIAL |
225 | 226 | ||
227 | /* Set of bits not changed in pte_modify */ | ||
228 | #define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_SPECIAL) | ||
229 | |||
226 | /* Six different types of pages. */ | 230 | /* Six different types of pages. */ |
227 | #define _PAGE_TYPE_EMPTY 0x400 | 231 | #define _PAGE_TYPE_EMPTY 0x400 |
228 | #define _PAGE_TYPE_NONE 0x401 | 232 | #define _PAGE_TYPE_NONE 0x401 |
@@ -681,7 +685,7 @@ static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *pt | |||
681 | */ | 685 | */ |
682 | static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) | 686 | static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) |
683 | { | 687 | { |
684 | pte_val(pte) &= PAGE_MASK; | 688 | pte_val(pte) &= _PAGE_CHG_MASK; |
685 | pte_val(pte) |= pgprot_val(newprot); | 689 | pte_val(pte) |= pgprot_val(newprot); |
686 | return pte; | 690 | return pte; |
687 | } | 691 | } |