The previous patch to make userspace work again on v6 had a problem
with vectors at 0xffff0000. RMK's version fixes the problem in the
patch that added L_PTE_ASID.
for (i = 0; i < 16; i++) {
unsigned long v = pgprot_val(protection_map[i]);
- v &= (~(PTE_BUFFERABLE|PTE_CACHEABLE)) | user_pgprot;
+ v = (v & ~(PTE_BUFFERABLE|PTE_CACHEABLE)) | user_pgprot;
protection_map[i] = __pgprot(v);
}
orreq r2, r2, #PTE_EXT_APX
tst r1, #L_PTE_USER
- orrne r2, r2, #PTE_EXT_AP1 | PTE_EXT_NG
+ orrne r2, r2, #PTE_EXT_AP1
bicne r2, r2, #PTE_EXT_AP0
tstne r1, #L_PTE_WRITE
tstne r1, #L_PTE_DIRTY