powerpc/64s: Fix FIXUP_ENDIAN non-maskable interrupt reentrancy
authorNicholas Piggin <npiggin@gmail.com>
Mon, 1 May 2017 12:01:09 +0000 (22:01 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 30 May 2017 04:59:51 +0000 (14:59 +1000)
commitf1fe5252018075e18d7f0c0e23ee173546420361
tree7a255b9ea0493470adfd97e4938f28be8a9738f5
parent5ed02dbb497422bf225783f46e6eadd237d23d6b
powerpc/64s: Fix FIXUP_ENDIAN non-maskable interrupt reentrancy

FIXUP_ENDIAN uses SRR[01] with MSR_RI=1, which gets corrupted if there
is an interleaving system reset or machine check interrupt.

Set MSR_RI=0 before setting SRRs. The rfid will restore MSR.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/boot/ppc_asm.h
arch/powerpc/include/asm/ppc_asm.h