summaryrefslogtreecommitdiff
path: root/arch/powerpc/mm/hash64_64k.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2016-02-29 11:55:22 +0300
committerIngo Molnar <mingo@kernel.org>2016-02-29 11:55:22 +0300
commit39a1142dbba04d2e08259bd10a369465c932126b (patch)
treea2f3b0046a5fe67c07a8f2301413f23c9f57b9b2 /arch/powerpc/mm/hash64_64k.c
parent65d8fc777f6dcfee12785c057a6b57f679641c90 (diff)
parentfc77dbd34c5c99bce46d40a2491937c3bcbd10af (diff)
downloadlinux-39a1142dbba04d2e08259bd10a369465c932126b.tar.xz
Merge tag 'v4.5-rc6' into locking/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/powerpc/mm/hash64_64k.c')
-rw-r--r--arch/powerpc/mm/hash64_64k.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/powerpc/mm/hash64_64k.c b/arch/powerpc/mm/hash64_64k.c
index 0762c1e08c88..edb09912f0c9 100644
--- a/arch/powerpc/mm/hash64_64k.c
+++ b/arch/powerpc/mm/hash64_64k.c
@@ -111,7 +111,13 @@ int __hash_page_4K(unsigned long ea, unsigned long access, unsigned long vsid,
*/
if (!(old_pte & _PAGE_COMBO)) {
flush_hash_page(vpn, rpte, MMU_PAGE_64K, ssize, flags);
- old_pte &= ~_PAGE_HASHPTE | _PAGE_F_GIX | _PAGE_F_SECOND;
+ /*
+ * clear the old slot details from the old and new pte.
+ * On hash insert failure we use old pte value and we don't
+ * want slot information there if we have a insert failure.
+ */
+ old_pte &= ~(_PAGE_HASHPTE | _PAGE_F_GIX | _PAGE_F_SECOND);
+ new_pte &= ~(_PAGE_HASHPTE | _PAGE_F_GIX | _PAGE_F_SECOND);
goto htab_insert_hpte;
}
/*