Merge git://git.infradead.org/~dwmw2/mtd-2.6.35
[pandora-kernel.git] / arch / powerpc / mm / pgtable_64.c
index d95679a..d050fc8 100644 (file)
@@ -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);