powerpc/mm: Fix infinite loop in hash fault with 4K page size
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Sat, 28 Nov 2015 17:09:33 +0000 (22:39 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 14 Dec 2015 04:19:04 +0000 (15:19 +1100)
This is the same bug we fixed as part of 09567e7fd44291bfc08accfdd67ad8f467842332
("powerpc/mm: Check paca psize is up to date for huge mappings"). Please
check that for details. The difference here is that faults were
happening on a 4K page at an address previously mapped by hugetlb.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Reviewed-by: Anshuman Khandual <khandual@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/hash_utils_64.c

index 7f9616f7c4797fb680ae21380516bdc4a70876e7..7d4f254a2671904fd7019b6195ca33e3c716585c 100644 (file)
@@ -1148,9 +1148,10 @@ int hash_page_mm(struct mm_struct *mm, unsigned long ea,
                }
        }
 
+#endif /* CONFIG_PPC_64K_PAGES */
+
        if (current->mm == mm)
                check_paca_psize(ea, mm, psize, user_region);
-#endif /* CONFIG_PPC_64K_PAGES */
 
 #ifdef CONFIG_PPC_64K_PAGES
        if (psize == MMU_PAGE_64K)