tests: Fix broken ivshmem-server-msi/-irq tests
Broken with commitb4ba67d9a7
("libqos: Change PCI accessors to take opaque BAR handle") a while ago, but nobody noticed since the tests are not run by default: The msix_pba_bar is not correctly initialized anymore if bir_pba has the same value as bir_table. With this fix, "make check SPEED=slow" should work fine again. Fixes:b4ba67d9a7
Tested-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Laurent Vivier <lvivier@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
db221e66d8
commit
4446158a1a
@ -120,6 +120,8 @@ void qpci_msix_enable(QPCIDevice *dev)
|
||||
bir_pba = table & PCI_MSIX_FLAGS_BIRMASK;
|
||||
if (bir_pba != bir_table) {
|
||||
dev->msix_pba_bar = qpci_iomap(dev, bir_pba, NULL);
|
||||
} else {
|
||||
dev->msix_pba_bar = dev->msix_table_bar;
|
||||
}
|
||||
dev->msix_pba_off = table & ~PCI_MSIX_FLAGS_BIRMASK;
|
||||
|
||||
@ -138,8 +140,11 @@ void qpci_msix_disable(QPCIDevice *dev)
|
||||
qpci_config_writew(dev, addr + PCI_MSIX_FLAGS,
|
||||
val & ~PCI_MSIX_FLAGS_ENABLE);
|
||||
|
||||
if (dev->msix_pba_bar.addr != dev->msix_table_bar.addr) {
|
||||
qpci_iounmap(dev, dev->msix_pba_bar);
|
||||
}
|
||||
qpci_iounmap(dev, dev->msix_table_bar);
|
||||
qpci_iounmap(dev, dev->msix_pba_bar);
|
||||
|
||||
dev->msix_enabled = 0;
|
||||
dev->msix_table_off = 0;
|
||||
dev->msix_pba_off = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user