[22/22] powerpc/eeh: Connect EEH error interrupt handle

Submitted by Gavin Shan on March 1, 2013, 2:17 p.m.


Message ID 1362147440-14096-23-git-send-email-shangw@linux.vnet.ibm.com
State Not Applicable, archived
Delegated to: Michael Ellerman
Headers show

Commit Message

Gavin Shan March 1, 2013, 2:17 p.m.
The EEH error interrupts should have been exported by firmware
through device tree. The OS already installed the interrupt
handler (opal_interrupt()) for them. The patch checks if we have
any existing EEH errors and wakes the kernel thread up to process
that if possible.

Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
 arch/powerpc/platforms/powernv/opal.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

Patch hide | download patch | download mbox

diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
index aaa0dba..8aa99de 100644
--- a/arch/powerpc/platforms/powernv/opal.c
+++ b/arch/powerpc/platforms/powernv/opal.c
@@ -17,6 +17,8 @@ 
 #include <linux/interrupt.h>
 #include <asm/opal.h>
 #include <asm/firmware.h>
+#include <asm/io.h>
+#include <asm/eeh.h>
 #include "powernv.h"
@@ -271,6 +273,10 @@  static irqreturn_t opal_interrupt(int irq, void *data)
 	uint64_t events;
 	opal_handle_interrupt(virq_to_hw(irq), &events);
+#ifdef CONFIG_EEH
+	if (events & OPAL_EVENT_PCI_ERROR)
+		pci_err_event();
 	/* XXX TODO: Do something with the events */