diff options
author | Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> | 2015-11-28 12:09:33 -0500 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2015-12-13 23:19:04 -0500 |
commit | 0863d7f2136550a281f40f4d8556bffd09fd4c2d (patch) | |
tree | 33b8588a67d7dbf88bb7ea8a23378c24fc153542 /arch/powerpc/mm/hash_utils_64.c | |
parent | db1231dcdb4dc6cdcbdef0babe641a9162c0dc98 (diff) |
powerpc/mm: Fix infinite loop in hash fault with 4K page size
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>
Diffstat (limited to 'arch/powerpc/mm/hash_utils_64.c')
-rw-r--r-- | arch/powerpc/mm/hash_utils_64.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 7f9616f7c479..7d4f254a2671 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -1148,9 +1148,10 @@ int hash_page_mm(struct mm_struct *mm, unsigned long ea, | |||
1148 | } | 1148 | } |
1149 | } | 1149 | } |
1150 | 1150 | ||
1151 | #endif /* CONFIG_PPC_64K_PAGES */ | ||
1152 | |||
1151 | if (current->mm == mm) | 1153 | if (current->mm == mm) |
1152 | check_paca_psize(ea, mm, psize, user_region); | 1154 | check_paca_psize(ea, mm, psize, user_region); |
1153 | #endif /* CONFIG_PPC_64K_PAGES */ | ||
1154 | 1155 | ||
1155 | #ifdef CONFIG_PPC_64K_PAGES | 1156 | #ifdef CONFIG_PPC_64K_PAGES |
1156 | if (psize == MMU_PAGE_64K) | 1157 | if (psize == MMU_PAGE_64K) |