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 
         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");

Reply via email to