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 <sha...@linux.vnet.ibm.com> --- arch/powerpc/platforms/powernv/opal.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c index ade4463..75acc6d 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" @@ -282,6 +284,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(); +#endif /* XXX TODO: Do something with the events */ -- 1.7.5.4 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev