The patchset depends on below Linux upstream commits: commit ed3e81f ("powerpc/eeh: Move PE state constants around") commit ec33d36 ("powerpc/eeh: Introduce eeh_pe_inject_err()")
According to PAPR specification 2.7, there're 3 RTAS calls relevent to error injection: "ibm,open-errinjct", "ibm,close-errinjct", "ibm,errinjct". The userland utility "errinjct" running on guest utilizes those 3 RTAS calls like this way: Call "ibm,open-errinjct" that returns open-token, which is passed to "ibm,errinjct" together with error specific arguments to do error injection. Finally, to return the open-token by calling "ibm,close-errinject". "ibm,errinjct" can be used to inject various errors, not limited to EEH errors. However, this patchset is going to support injecting EEH errors only for VFIO PCI devices. ========= Changelog ========= v1 -> v2: * Rebased to git://github.com/dgibson/qemu.git (branch: spapr-next) * Remove specific PCI error types in hw/ppc/spapr.h. Use those macros asm-powerpc/eeh.h instead. Gavin Shan (3): linux-headers: Add eeh.h sPAPR: Support RTAS call ibm, {open, close}-errinjct sPAPR: Support RTAS call ibm,errinjct hw/ppc/spapr_pci.c | 42 +++++++++++ hw/ppc/spapr_pci_vfio.c | 56 +++++++++++++++ hw/ppc/spapr_rtas.c | 156 ++++++++++++++++++++++++++++++++++++++++ include/hw/pci-host/spapr.h | 2 + include/hw/ppc/spapr.h | 35 ++++++++- linux-headers/asm-powerpc/eeh.h | 56 +++++++++++++++ 6 files changed, 346 insertions(+), 1 deletion(-) create mode 100644 linux-headers/asm-powerpc/eeh.h -- 2.1.0