diff options
author | Alistair Popple <alistair@popple.id.au> | 2015-07-30 02:53:54 -0400 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2015-07-30 05:01:32 -0400 |
commit | b8d65e9662b1ffb3b52a65fd11b0b968022dc6a1 (patch) | |
tree | 2f99e8031577dbf9691c90f11efe4510ccb0abf1 | |
parent | 120d200a86273d1840d091959dca65617cd9eff2 (diff) |
powerpc/eeh-powernv: Fix unbalanced IRQ warning
pnv_eeh_next_error() re-enables the eeh opal event interrupt but it
gets called from a loop if there are more outstanding events to
process, resulting in a warning due to enabling an already enabled
interrupt. Instead the interrupt should only be re-enabled once the
last outstanding event has been processed.
Tested-by: Daniel Axtens <dja@axtens.net>
Reported-by: Daniel Axtens <dja@axtens.net>
Signed-off-by: Alistair Popple <alistair@popple.id.au>
Acked-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r-- | arch/powerpc/platforms/powernv/eeh-powernv.c | 2 |
1 files changed, 1 insertions, 1 deletions
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) | |||
1478 | } | 1478 | } |
1479 | 1479 | ||
1480 | /* Unmask the event */ | 1480 | /* Unmask the event */ |
1481 | if (eeh_enabled()) | 1481 | if (ret == EEH_NEXT_ERR_NONE && eeh_enabled()) |
1482 | enable_irq(eeh_event_irq); | 1482 | enable_irq(eeh_event_irq); |
1483 | 1483 | ||
1484 | return ret; | 1484 | return ret; |