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.
         */