Michal Suchánek <msucha...@suse.de> writes: > Hello, > > does this logic apply to "Unrecoverable System Reset" as well?
Which logic do you mean? We do call die() before checking MSR_RI in system_reset_exception(): /* * No debugger or crash dump registered, print logs then * panic. */ die("System Reset", regs, SIGABRT); mdelay(2*MSEC_PER_SEC); /* Wait a little while for others to print */ add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE); nmi_panic(regs, "System Reset"); out: #ifdef CONFIG_PPC_BOOK3S_64 BUG_ON(get_paca()->in_nmi == 0); if (get_paca()->in_nmi > 1) die("Unrecoverable nested System Reset", regs, SIGABRT); #endif /* Must die if the interrupt is not recoverable */ if (!(regs->msr & MSR_RI)) die("Unrecoverable System Reset", regs, SIGABRT); So you should see the output from die("System Reset", ...) even if MSR[RI] was clear when you took the system reset. cheers > On Tue, Jan 22, 2019 at 02:11:24PM +0000, Christophe Leroy wrote: >> Looks like book3s/32 doesn't set RI on machine check, so >> checking RI before calling die() will always be fatal >> allthought this is not an issue in most cases. >> >> Fixes: b96672dd840f ("powerpc: Machine check interrupt is a non-maskable >> interrupt") >> Fixes: daf00ae71dad ("powerpc/traps: restore recoverability of machine_check >> interrupts") >> Signed-off-by: Christophe Leroy <christophe.le...@c-s.fr> >> Cc: sta...@vger.kernel.org >> --- >> arch/powerpc/kernel/traps.c | 8 ++++---- >> 1 file changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c >> index 64936b60d521..c740f8bfccc9 100644 >> --- a/arch/powerpc/kernel/traps.c >> +++ b/arch/powerpc/kernel/traps.c >> @@ -763,15 +763,15 @@ void machine_check_exception(struct pt_regs *regs) >> if (check_io_access(regs)) >> goto bail; >> >> - /* Must die if the interrupt is not recoverable */ >> - if (!(regs->msr & MSR_RI)) >> - nmi_panic(regs, "Unrecoverable Machine check"); >> - >> if (!nested) >> nmi_exit(); >> >> die("Machine check", regs, SIGBUS); >> >> + /* Must die if the interrupt is not recoverable */ >> + if (!(regs->msr & MSR_RI)) >> + nmi_panic(regs, "Unrecoverable Machine check"); >> + >> return; >> >> bail: >> -- >> 2.13.3 >>