summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/hash64_64k.c
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2016-02-25 21:52:58 +1100
committerMichael Ellerman <mpe@ellerman.id.au>2016-02-25 21:52:58 +1100
commit2527083cb831024d22a03f68f54f6a46ecf5bf6c (patch)
tree41de92d988a4deccb2d5087a964a51682f155e99 /arch/powerpc/mm/hash64_64k.c
parenta4c3f909b4d9bb9430bf42ad583661df6dfa86c6 (diff)
parent9ab3ac233a8b4ffcc27c8475b83dee49fc46bc76 (diff)
downloadblackbird-op-linux-2527083cb831024d22a03f68f54f6a46ecf5bf6c.tar.gz
blackbird-op-linux-2527083cb831024d22a03f68f54f6a46ecf5bf6c.zip
Merge tag 'powerpc-4.5-4' into next
Pull in our current fixes from 4.5, in particular the "Fix Multi hit ERAT" bug is causing folks some grief when testing next.
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;
}
/*
OpenPOWER on IntegriCloud