X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=arch%2Farm%2Fmm%2Fmmu.c;fp=arch%2Farm%2Fmm%2Fmmu.c;h=b68c6b22e1c80f263d46555064b1c1c13f48586c;hb=67dadcb324c2fe059cb2c35f8b80df42bb23f7c4;hp=a623cb3ad012b196aacd11fc7f122fb84c0e3765;hpb=eb47f71200b7d5b4c8c1f8c75675f592d855aafd;p=karo-tx-linux.git diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index a623cb3ad012..b68c6b22e1c8 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -515,6 +515,16 @@ static void __init build_mem_type_table(void) hyp_device_pgprot = mem_types[MT_DEVICE].prot_pte; s2_device_pgprot = mem_types[MT_DEVICE].prot_pte_s2; + /* + * We don't use domains on ARMv6 (since this causes problems with + * v6/v7 kernels), so we must use a separate memory type for user + * r/o, kernel r/w to map the vectors page. + */ +#ifndef CONFIG_ARM_LPAE + if (cpu_arch == CPU_ARCH_ARMv6) + vecs_pgprot |= L_PTE_MT_VECTORS; +#endif + /* * ARMv6 and above have extended page tables. */