The patches are fixing 2 issues for EEH on VFIO PCI devices. PATCH[1/2] clears stale MSIx table of VFIO PCI devices when asserting fundamental or hot PE reset so that their MSIx tables can be restored properly after reset to avoid recursive EEH error. PATCH[2/2] clears PE frozen state in case the guest hits excessive EEH errors. With the fix, the VFIO PCI devices are expected to work again after rebooting guest.
Changelog ========= v2 -> v3: * Introduced vfio_eeh_pe_reset(), which is called from spapr_pci_vfio.c when asserting PE reset, replaces vfio_container_eeh_event() to clear stale MSIx tables. * Droped the patch "VFIO: Disable INTx interrupt on EEH reset", which is caused by KVM bugs on host side. v1 -> v2: * vfio_container_eeh_event() stub for !CONFIG_PCI and separate error message for this function. Dropped vfio_put_group() on NULL group * Disabling INTx interrupt, instead of clearing INTx pending flag during PE reset. Gavin Shan (2): VFIO: Clear stale MSIx table during EEH reset sPAPR: Reenable EEH functionality on reboot hw/ppc/spapr_pci_vfio.c | 27 ++++++++++++++++++++++----- hw/vfio/Makefile.objs | 6 +++++- hw/vfio/pci-stub.c | 16 ++++++++++++++++ hw/vfio/pci.c | 36 ++++++++++++++++++++++++++++++++++++ include/hw/vfio/vfio.h | 2 ++ 5 files changed, 81 insertions(+), 6 deletions(-) create mode 100644 hw/vfio/pci-stub.c -- 1.8.3.2