Merge remote-tracking branch 'lsk/v3.10/topic/big.LITTLE' into linux-linaro-lsk
[firefly-linux-kernel-4.4.55.git] / arch / arm / mm / mmu.c
index daf336fe0be89250dc82343d81681ee746abc5d9..fb3c446af9e5ea4ddd98c85bfbd36db135092f2f 100644 (file)
@@ -458,6 +458,16 @@ static void __init build_mem_type_table(void)
        s2_pgprot = cp->pte_s2;
        hyp_device_pgprot = s2_device_pgprot = mem_types[MT_DEVICE].prot_pte;
 
+       /*
+        * 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.
         */