Hi, This series is split out from a larger one that added some more XHCI functionality and tests here. Just wanted to get more focus on the PCI issues first.
https://lore.kernel.org/qemu-devel/20241212083502.1439033-1-npig...@gmail.com/T/#t It is quite reworked after feedback about the incorrect PBA write implementation. This one solves the e1000e/igb multiple-intrrupt problem by enabling the msix vector which delivers the interrupt and lowers the PBA pending bit. I'm still curious about PCI spec note that masked pending interrupt must have PBA bit cleared if the interrupt condition in the function clears, which no device seems to implement... but at least for now, unmasking and delivering seems to be the reliable way to clear the interrupt. Thanks, Nick Nicholas Piggin (5): qtest/pci: Enforce balanced iomap/unmap qtest/libqos/pci: Fix qpci_msix_enable sharing bar0 qtest/libqos/pci: Do not write to PBA memory qtest/e1000e|igb: Clear interrupt-cause bits after irq qtest/e1000e|igb: Fix msix to re-trigger interrupts tests/qtest/libqos/ahci.h | 1 + tests/qtest/libqos/e1000e.h | 8 +++ tests/qtest/libqos/pci.h | 3 + tests/qtest/libqos/virtio-pci.h | 1 + tests/qtest/ahci-test.c | 2 + tests/qtest/e1000e-test.c | 10 ++- tests/qtest/igb-test.c | 10 ++- tests/qtest/libqos/ahci.c | 6 ++ tests/qtest/libqos/e1000e.c | 113 +++++++++++++++++++++++++++++++- tests/qtest/libqos/pci.c | 74 ++++++++++++++++++--- tests/qtest/libqos/virtio-pci.c | 6 +- 11 files changed, 217 insertions(+), 17 deletions(-) -- 2.45.2