Message ID | 20200508043408.886394-17-npiggin@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | powerpc: machine check and system reset fixes | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch powerpc/merge (1bc92fe3175eb26ff37e580c0383d7a9abe06835) |
snowpatch_ozlabs/build-ppc64le | warning | Build succeeded but added 11 new sparse warnings |
snowpatch_ozlabs/build-ppc64be | warning | Build succeeded but added 2 new sparse warnings |
snowpatch_ozlabs/build-ppc64e | fail | Build failed! |
snowpatch_ozlabs/build-pmac32 | success | Build succeeded |
snowpatch_ozlabs/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 16 lines checked |
snowpatch_ozlabs/needsstable | success | Patch has no Fixes tags |
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c index 477befcda8d3..759d8dbf867b 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c @@ -873,13 +873,13 @@ void machine_check_exception(struct pt_regs *regs) die("Machine check", regs, SIGBUS); + return; + +bail: /* Must die if the interrupt is not recoverable */ if (!(regs->msr & MSR_RI)) die("Unrecoverable Machine check", regs, SIGBUS); - return; - -bail: if (!nested) nmi_exit(); }
The MSR[RI]=0 recoverability check should be in the recovered machine check case. Without this, a machine check that hits in a RI region that has for example live SRRs, will cause the interrupted context to resume with corrupted registers and crash unpredictably. This does not affect 64s at the moment, because it does its own early handling with RI check, but it may affect 32s. Cc: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Nicholas Piggin <npiggin@gmail.com> --- arch/powerpc/kernel/traps.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)