From: David Vrabel Date: Mon, 28 Apr 2014 09:31:04 +0000 (+0100) Subject: Merge commit 'e26a9e0' into stable/for-linus-3.15 X-Git-Tag: next-20140516~135^2~3 X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-linux.git;a=commitdiff_plain;h=67dadcb324c2fe059cb2c35f8b80df42bb23f7c4 Merge commit 'e26a9e0' into stable/for-linus-3.15 --- 67dadcb324c2fe059cb2c35f8b80df42bb23f7c4 diff --cc arch/arm/mm/mmu.c index a623cb3ad012,6ec07a84f759..b68c6b22e1c8 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@@ -512,9 -508,18 +512,19 @@@ static void __init build_mem_type_table cp = &cache_policies[cachepolicy]; vecs_pgprot = kern_pgprot = user_pgprot = cp->pte; s2_pgprot = cp->pte_s2; - hyp_device_pgprot = s2_device_pgprot = mem_types[MT_DEVICE].prot_pte; + 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. */