On Fri, Sep 11, 2020 at 11:23:57PM +1000, Michael Ellerman wrote: > 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.
Indeed, replied to the wrong patch. I was looking at daf00ae71dad ("powerpc/traps: restore recoverability of machine_check interrupts") which has very similar commit message. Sorry about the confusion. Thanks Michal > > 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 > >>