Message ID | 1504030416-18618-1-git-send-email-thuth@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Aug 29, 2017 at 08:13:36PM +0200, 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 > 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 <thuth@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> > --- > 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;
On Tue, 29 Aug 2017 20:13:36 +0200 Thomas Huth <thuth@redhat.com> 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 > 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 <thuth@redhat.com> > --- > tests/libqos/pci.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) With that (and "hw/misc/ivshmem: Fix ivshmem_recv_msg() to also work on big endian systems"), "make check SPEED=slow" now works for me both on x86_64 and s390x, so Tested-by: Cornelia Huck <cohuck@redhat.com>
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 <thuth@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 <lvivier@redhat.com>
On 04.09.2017 08:53, Laurent Vivier wrote: > 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"? Ah, well, that sentence was ambiguous - I meant "nobody noticed since the *ivshmem* tests are only run in SPEED=slow mode *and we are running the tests in quick mode only by default*". Maybe this could be fixed up when the patch is picked up... >> 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 <thuth@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 <lvivier@redhat.com> Thanks! Thomas
On Tue, 29 Aug 2017 20:13:36 +0200 Thomas Huth <thuth@redhat.com> 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 > 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 <thuth@redhat.com> > --- > tests/libqos/pci.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) There really should be a better tree for that than my s390 tree, but the other ivshmem patch was feeling a bit lonely, so I queued this as well. Better than having the patch languish on the list.
On Mon, Sep 11, 2017 at 09:32:07AM +0200, Cornelia Huck wrote: > On Tue, 29 Aug 2017 20:13:36 +0200 > Thomas Huth <thuth@redhat.com> 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 > > 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 <thuth@redhat.com> > > --- > > tests/libqos/pci.c | 7 ++++++- > > 1 file changed, 6 insertions(+), 1 deletion(-) > > There really should be a better tree for that than my s390 tree, but > the other ivshmem patch was feeling a bit lonely, so I queued this as > well. Better than having the patch languish on the list. Thanks, Cornelia.
29.08.2017 21: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 > anymore if bir_pba has the same value as bir_table. With this fix, > "make check SPEED=slow" should work fine again. Applied to -trivial, thanks! /mjt
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;
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 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 <thuth@redhat.com> --- tests/libqos/pci.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)