When using qemu pcie_aer_inject_error command to inject an error on e1000e, the error is not sent to the guest. The problem is caused by the e1000e did not initialize the device error control registers mask. Since the default mask is 0, any value written to the registers will be masked off.
Followed pci-bridge/xio3130_downstream.c to use pcie_cap_deverr_init() to initialize the mask. Signed-off-by: Thomas Tai <thomas....@oracle.com> --- hw/net/e1000e.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/net/e1000e.c b/hw/net/e1000e.c index 191398a3d5..1ebcaa2d19 100644 --- a/hw/net/e1000e.c +++ b/hw/net/e1000e.c @@ -478,6 +478,7 @@ static void e1000e_pci_realize(PCIDevice *pci_dev, Error **errp) hw_error("Failed to initialize PM capability"); } + pcie_cap_deverr_init(pci_dev); if (pcie_aer_init(pci_dev, PCI_ERR_VER, e1000e_aer_offset, PCI_ERR_SIZEOF, NULL) < 0) { hw_error("Failed to initialize AER capability"); -- 2.14.1