summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorImre_Deak <imre.deak@solidboot.com>2007-02-11 13:45:13 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-02-11 18:06:17 +0100
commit44b18693904e65d840ae999ac8aa717551cf509f (patch)
treee4c7c9b1676a94d4488b0a5a4023fcbf23c002e4 /arch
parent[ARM] Use ARRAY_SIZE macro when appropriate (diff)
downloadlinux-44b18693904e65d840ae999ac8aa717551cf509f.tar.xz
linux-44b18693904e65d840ae999ac8aa717551cf509f.zip
[ARM] 4158/1: Fix user page protection macros
The PAGE_* user page protection macros don't take into account the configured memory policy and other architecture specific bits like the global/ASID and shared mapping bits. Instead of constants let these depend on a variable fixed up at init just like PAGE_KERNEL. Signed-off-by: Imre Deak <imre.deak@solidboot.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mm/mmu.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 655c8376f0b5..94fd4bf5cb9e 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -49,8 +49,10 @@ pmd_t *top_pmd;
static unsigned int cachepolicy __initdata = CPOLICY_WRITEBACK;
static unsigned int ecc_mask __initdata = 0;
+pgprot_t pgprot_user;
pgprot_t pgprot_kernel;
+EXPORT_SYMBOL(pgprot_user);
EXPORT_SYMBOL(pgprot_kernel);
struct cachepolicy {
@@ -345,6 +347,7 @@ static void __init build_mem_type_table(void)
mem_types[MT_MINICLEAN].prot_sect &= ~PMD_SECT_TEX(1);
}
+ pgprot_user = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | user_pgprot);
pgprot_kernel = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG |
L_PTE_DIRTY | L_PTE_WRITE |
L_PTE_EXEC | kern_pgprot);