On 12/11/2019 13:44, Michael Ellerman wrote: > Cédric Le Goater <c...@kaod.org> writes: >> When the machine crash handler is invoked, all interrupts are masked >> but interrupts which have not been started yet do not have an ESB page >> mapped in the Linux address space. This crashes the 'crash kexec' >> sequence on sPAPR guests. > > This sounds like it needs a Fixes/stable tag?
yes. > I used these: > > Fixes: 243e25112d06 ("powerpc/xive: Native exploitation of the XIVE > interrupt controller") > Cc: sta...@vger.kernel.org # v4.12+ > > Please tell me if you think that's wrong. Looks OK to me. Thanks, C. > cheers > > >> diff --git a/arch/powerpc/sysdev/xive/common.c >> b/arch/powerpc/sysdev/xive/common.c >> index df832b09e3e9..f5fadbd2533a 100644 >> --- a/arch/powerpc/sysdev/xive/common.c >> +++ b/arch/powerpc/sysdev/xive/common.c >> @@ -1035,6 +1035,15 @@ static int xive_irq_alloc_data(unsigned int virq, >> irq_hw_number_t hw) >> xd->target = XIVE_INVALID_TARGET; >> irq_set_handler_data(virq, xd); >> >> + /* >> + * Turn OFF by default the interrupt being mapped. A side >> + * effect of this check is the mapping the ESB page of the >> + * interrupt in the Linux address space. This prevents page >> + * fault issues in the crash handler which masks all >> + * interrupts. >> + */ >> + xive_esb_read(xd, XIVE_ESB_SET_PQ_01); >> + >> return 0; >> } >> >> -- >> 2.21.0