[Qemu-devel] [PATCH] e1000e : fix PCIe AER error injection

Thomas Tai posted 1 patch 7 years, 8 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20180223150201.2960-1-thomas.tai@oracle.com
Test checkpatch passed
Test docker-build@min-glib passed
Test docker-mingw@fedora passed
Test docker-quick@centos6 passed
Test ppcbe passed
Test ppcle passed
Test s390x failed
hw/net/e1000e.c | 1 +
1 file changed, 1 insertion(+)
[Qemu-devel] [PATCH] e1000e : fix PCIe AER error injection
Posted by Thomas Tai 7 years, 8 months ago
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.tai@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