powerpc/64s/hash: Do not use PPC_INVALIDATE_ERAT on CPUs before POWER9
authorNicholas Piggin <npiggin@gmail.com>
Mon, 27 Aug 2018 03:03:01 +0000 (13:03 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Nov 2018 19:08:50 +0000 (11:08 -0800)
commit66eb08aea0072366d01c34e3c2870f651f0cb1e7
tree12f40a8638d249fc0005106f3be6e3fa6e0c3c35
parente0f5f1c89c17f41ef01e01bd0f72b168ffecf4c7
powerpc/64s/hash: Do not use PPC_INVALIDATE_ERAT on CPUs before POWER9

commit bc276ecba132caccb1fda5863a652c15def2b8c6 upstream.

PPC_INVALIDATE_ERAT is slbia IH=7 which is a new variant introduced
with POWER9, and the result is undefined on earlier CPUs.

Commits 7b9f71f974 ("powerpc/64s: POWER9 machine check handler") and
d4748276ae ("powerpc/64s: Improve local TLB flush for boot and MCE on
POWER9") caused POWER7/8 code to use this instruction. Remove it. An
ERAT flush can be made by invalidatig the SLB, but before POWER9 that
requires a flush and rebolt.

Fixes: 7b9f71f974 ("powerpc/64s: POWER9 machine check handler")
Fixes: d4748276ae ("powerpc/64s: Improve local TLB flush for boot and MCE on POWER9")
Cc: stable@vger.kernel.org # v4.11+
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/kernel/mce_power.c
arch/powerpc/mm/hash_native_64.c