|
@@ -265,6 +265,14 @@ void __iomem * ioremap_flags(phys_addr_t addr, unsigned long size,
|
|
|
/* we don't want to let _PAGE_USER and _PAGE_EXEC leak out */
|
|
|
flags &= ~(_PAGE_USER | _PAGE_EXEC);
|
|
|
|
|
|
+#ifdef _PAGE_BAP_SR
|
|
|
+ /* _PAGE_USER contains _PAGE_BAP_SR on BookE using the new PTE format
|
|
|
+ * which means that we just cleared supervisor access... oops ;-) This
|
|
|
+ * restores it
|
|
|
+ */
|
|
|
+ flags |= _PAGE_BAP_SR;
|
|
|
+#endif
|
|
|
+
|
|
|
if (ppc_md.ioremap)
|
|
|
return ppc_md.ioremap(addr, size, flags, caller);
|
|
|
return __ioremap_caller(addr, size, flags, caller);
|