diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2016-02-25 21:52:58 +1100 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2016-02-25 21:52:58 +1100 |
commit | 2527083cb831024d22a03f68f54f6a46ecf5bf6c (patch) | |
tree | 41de92d988a4deccb2d5087a964a51682f155e99 /arch/powerpc/mm/hash64_64k.c | |
parent | a4c3f909b4d9bb9430bf42ad583661df6dfa86c6 (diff) | |
parent | 9ab3ac233a8b4ffcc27c8475b83dee49fc46bc76 (diff) | |
download | blackbird-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.c | 8 |
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; } /* |