diff options
| author | Linus Torvalds <torvalds@home.osdl.org> | 2004-01-04 02:37:38 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.osdl.org> | 2004-01-04 02:37:38 -0800 |
| commit | e37d5b228334c3939b0447201a1870eb92a804ee (patch) | |
| tree | 275d876b0f32b3d3b985ff6e0dcce790feb0ec8f /include | |
| parent | fa751d5c198cc0ff8efc7df04550fce45862b354 (diff) | |
| parent | 45b38a5014e339fa293a85c498c54b339b7408e5 (diff) | |
Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk
into home.osdl.org:/home/torvalds/v2.5/linux
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-arm/pgtable.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/include/asm-arm/pgtable.h b/include/asm-arm/pgtable.h index 9a09fb19258b..94522584d6f6 100644 --- a/include/asm-arm/pgtable.h +++ b/include/asm-arm/pgtable.h @@ -152,16 +152,16 @@ extern void __pgd_error(const char *file, int line, unsigned long val); /* * The following macros handle the cache and bufferable bits... */ -#define _L_PTE_DEFAULT L_PTE_PRESENT | L_PTE_YOUNG -#define _L_PTE_READ L_PTE_USER | L_PTE_EXEC | L_PTE_CACHEABLE | L_PTE_BUFFERABLE +#define _L_PTE_DEFAULT L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_CACHEABLE | L_PTE_BUFFERABLE +#define _L_PTE_READ L_PTE_USER | L_PTE_EXEC + +extern pgprot_t pgprot_kernel; #define PAGE_NONE __pgprot(_L_PTE_DEFAULT) #define PAGE_COPY __pgprot(_L_PTE_DEFAULT | _L_PTE_READ) #define PAGE_SHARED __pgprot(_L_PTE_DEFAULT | _L_PTE_READ | L_PTE_WRITE) #define PAGE_READONLY __pgprot(_L_PTE_DEFAULT | _L_PTE_READ) -#define PAGE_KERNEL __pgprot(_L_PTE_DEFAULT | L_PTE_CACHEABLE | L_PTE_BUFFERABLE | L_PTE_DIRTY | L_PTE_WRITE | L_PTE_EXEC) - -#define _PAGE_CHG_MASK (PAGE_MASK | L_PTE_DIRTY | L_PTE_YOUNG) +#define PAGE_KERNEL pgprot_kernel #endif /* __ASSEMBLY__ */ @@ -323,7 +323,8 @@ static inline pte_t *pmd_page_kernel(pmd_t pmd) static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { - pte_val(pte) = (pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot); + const unsigned long mask = L_PTE_EXEC | L_PTE_WRITE | L_PTE_USER; + pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask); return pte; } |
