powerpc/mm/hash64: Fix subpage protection with 4K HPTE config
[pandora-kernel.git] / arch / powerpc / mm / hash_utils_64.c
index 86ca75a..e9a8b8c 100644 (file)
@@ -1077,8 +1077,16 @@ EXPORT_SYMBOL_GPL(hash_page);
 #ifdef CONFIG_PPC_MM_SLICES
 static bool should_hash_preload(struct mm_struct *mm, unsigned long ea)
 {
+       int psize = get_slice_psize(mm, ea);
+
        /* We only prefault standard pages for now */
-       if (unlikely(get_slice_psize(mm, ea) != mm->context.user_psize))
+       if (unlikely(psize != mm->context.user_psize))
+               return false;
+
+       /*
+        * Don't prefault if subpage protection is enabled for the EA.
+        */
+       if (unlikely((psize == MMU_PAGE_4K) && subpage_protection(mm, ea)))
                return false;
 
        return true;