[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-2.11] tests: Fix broken ivshmem-server-msi/-
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [PATCH for-2.11] tests: Fix broken ivshmem-server-msi/-irq tests |
Date: |
Wed, 30 Aug 2017 12:11:33 +1000 |
User-agent: |
Mutt/1.8.3 (2017-05-23) |
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 <address@hidden>
Reviewed-by: David Gibson <address@hidden>
> ---
> 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;
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature