To avoid EEH getting invoked repeatedly for the same error, the OPAL interrupt that invokes EEH is masked at the start of the process.
Currently, pnv_eeh_next_error() re-enables the interrupt but it gets called from a loop if there are more outstanding events to process. This causes an unbalanced enable warning. Check that there are no more errors before enabling interrupts. Fixed-by: Alistair Popple <alist...@popple.id.au> Tested-by: Daniel Axtens <d...@axtens.net> [and changelog] Signed-off-by: Michael Ellerman <m...@ellerman.id.au> --- arch/powerpc/platforms/powernv/eeh-powernv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/platforms/powernv/eeh-powernv.c b/arch/powerpc/platforms/powernv/eeh-powernv.c index 5cf5e6ea213b..7cf0df859d05 100644 --- a/arch/powerpc/platforms/powernv/eeh-powernv.c +++ b/arch/powerpc/platforms/powernv/eeh-powernv.c @@ -1478,7 +1478,7 @@ static int pnv_eeh_next_error(struct eeh_pe **pe) } /* Unmask the event */ - if (eeh_enabled()) + if (ret == EEH_NEXT_ERR_NONE && eeh_enabled()) enable_irq(eeh_event_irq); return ret; -- 2.1.4 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev