diff options
Diffstat (limited to 'arch/powerpc/mm/pgtable_64.c')
-rw-r--r-- | arch/powerpc/mm/pgtable_64.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c index d95679a5fb2..d050fc8d971 100644 --- a/arch/powerpc/mm/pgtable_64.c +++ b/arch/powerpc/mm/pgtable_64.c | |||
@@ -265,6 +265,14 @@ void __iomem * ioremap_flags(phys_addr_t addr, unsigned long size, | |||
265 | /* we don't want to let _PAGE_USER and _PAGE_EXEC leak out */ | 265 | /* we don't want to let _PAGE_USER and _PAGE_EXEC leak out */ |
266 | flags &= ~(_PAGE_USER | _PAGE_EXEC); | 266 | flags &= ~(_PAGE_USER | _PAGE_EXEC); |
267 | 267 | ||
268 | #ifdef _PAGE_BAP_SR | ||
269 | /* _PAGE_USER contains _PAGE_BAP_SR on BookE using the new PTE format | ||
270 | * which means that we just cleared supervisor access... oops ;-) This | ||
271 | * restores it | ||
272 | */ | ||
273 | flags |= _PAGE_BAP_SR; | ||
274 | #endif | ||
275 | |||
268 | if (ppc_md.ioremap) | 276 | if (ppc_md.ioremap) |
269 | return ppc_md.ioremap(addr, size, flags, caller); | 277 | return ppc_md.ioremap(addr, size, flags, caller); |
270 | return __ioremap_caller(addr, size, flags, caller); | 278 | return __ioremap_caller(addr, size, flags, caller); |