For now, for vfio pci passthough devices when qemu receives an error from host aer report, there just terminate the guest, but usually user want to know what error occurred but stop the guest, so this patches add aer capability support for vfio device, and pass the error to guest, and have guest driver to recover from the error.
for turning on SERR# patch in seabios list, pls see: http://www.seabios.org/pipermail/seabios/2015-January/008591.html v2-v3: 1. refactor vfio device to parse extended capability. 2. add global property for piix4 to disable vfio aer cap. v1-v2: 1. turn on SERR# for bridge control register in firmware. 2. initilize aer capability for vfio device. 3. fix some trivial bug. Chen Fan (10): pcie_aer: fix typos in pcie_aer_inject_error comment aer: fix a wrong init PCI_ERR_COR_STATUS w1cmask type register aer: introduce pcie_aer_setup to setup aer related bits vfio: add pcie extanded capability support pcie_aer: expose pcie_aer_msg() interface piix: disable all vfio device aercap property vfio_pci: change vfio device features bit macro to enum definition vfio-pci: add VFIO_FEATURE_ENABLE_AER_CAP feature vfio-pci: pass the aer error to guest pcie_aer: fix a trivial typo in PCIEAERMsg comments hw/i386/pc_piix.c | 16 ++++++ hw/pci/pcie_aer.c | 73 +++++++++++++++---------- hw/vfio/pci.c | 134 ++++++++++++++++++++++++++++++++++++++++++---- include/hw/pci/pcie_aer.h | 4 +- 4 files changed, 188 insertions(+), 39 deletions(-) -- 1.9.3