On 29/08/2017 20:13, Thomas Huth wrote: > Broken with commit b4ba67d9a7025 ("libqos: Change PCI accessors to take > opaque BAR handle") a while ago, but nobody noticed since the tests are > only run in SPEED=slow mode: The msix_pba_bar is not correctly initialized
you mean "SPEED=quick"? > anymore if bir_pba has the same value as bir_table. With this fix, > "make check SPEED=slow" should work fine again. > > Fixes: b4ba67d9a702507793c2724e56f98e9b0f7be02b > Signed-off-by: Thomas Huth <th...@redhat.com> > --- > tests/libqos/pci.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/tests/libqos/pci.c b/tests/libqos/pci.c > index 2dcdead..28d576c 100644 > --- a/tests/libqos/pci.c > +++ b/tests/libqos/pci.c > @@ -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; > Reviewed-by: Laurent Vivier <lviv...@redhat.com>