[PATCH] powerpc/traps: restore recoverability of machine_check interrupts

Nicholas Piggin npiggin at gmail.com
Tue Oct 16 12:10:04 AEDT 2018


On Mon, 15 Oct 2018 09:40:50 +0200
Christophe LEROY <christophe.leroy at c-s.fr> wrote:

> Cc: stable at vger.kernel.org <stable at vger.kernel.org>
> 
> Le 13/10/2018 à 11:16, Christophe Leroy a écrit :
> > commit b96672dd840f ("powerpc: Machine check interrupt is a non-
> > maskable interrupt") added a call to nmi_enter() at the beginning of
> > machine check restart exception handler. Due to that, in_interrupt()
> > always returns true regardless of the state before entering the
> > exception, and die() panics even when the system was not already in
> > interrupt.
> > 
> > This patch calls nmi_exit() before calling die() in order to restore
> > the interrupt state we had before calling nmi_enter()
> > 
> > Fixes: b96672dd840f ("powerpc: Machine check interrupt is a non-maskable interrupt")
> > Signed-off-by: Christophe Leroy <christophe.leroy at c-s.fr>

Reviewed-by: Nicholas Piggin <npiggin at gmail.com>

This looks good to me and probably the simplest fix.

powernv will need a fix on top of this, to remove the die and let it
just fall through unrecovered to the traps.c code. pseries seems to
be okay. But this patch looks good.

Thanks,
Nick


More information about the Linuxppc-dev mailing list