diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2017-09-15 20:29:44 +0100 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2017-09-15 20:29:44 +0100 |
| commit | 5faf2d376af3cb4eb92da44c2580e08d39832caa (patch) | |
| tree | f6eec20c54a2477b61c0426d3676a9c3a7c4d425 /tests/libqos/pci.c | |
| parent | d535f5d363e29ad6f07e2df4c1ef1d3f17222198 (diff) | |
| parent | 7b899f4dd596dbb7d271f7fab36fbfffec84868e (diff) | |
| download | focaccia-qemu-5faf2d376af3cb4eb92da44c2580e08d39832caa.tar.gz focaccia-qemu-5faf2d376af3cb4eb92da44c2580e08d39832caa.zip | |
Merge remote-tracking branch 'remotes/huth/tags/check-20170915' into staging
Some fixes and improvements for various qtests by Eric and me. # gpg: Signature made Fri 15 Sep 2017 08:37:21 BST # gpg: using RSA key 0x2ED9D774FE702DB5 # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" # gpg: aka "Thomas Huth <thuth@redhat.com>" # gpg: aka "Thomas Huth <huth@tuxfamily.org>" # gpg: aka "Thomas Huth <th.huth@posteo.de>" # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * remotes/huth/tags/check-20170915: qtest: Avoid passing raw strings through hmp() libqtest: Remove dead qtest_instances variable numa-test: Use hmp() qtest: Don't perform side effects inside assertion test-qga: Kill broken and dead QGA_TEST_SIDE_EFFECTING code tests: Fix broken ivshmem-server-msi/-irq tests tests/libqtest: Use a proper error message if QTEST_QEMU_BINARY is missing tests/test-hmp: Remove puv3 and tricore_testboard from the blacklist tests: Introduce generic device hot-plug/hot-unplug functions Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'tests/libqos/pci.c')
| -rw-r--r-- | tests/libqos/pci.c | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/tests/libqos/pci.c b/tests/libqos/pci.c index 2dcdeade2a..0b73cb23d0 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; @@ -394,21 +399,6 @@ QPCIBar qpci_legacy_iomap(QPCIDevice *dev, uint16_t addr) void qpci_plug_device_test(const char *driver, const char *id, uint8_t slot, const char *opts) { - QDict *response; - char *cmd; - - cmd = g_strdup_printf("{'execute': 'device_add'," - " 'arguments': {" - " 'driver': '%s'," - " 'addr': '%d'," - " %s%s" - " 'id': '%s'" - "}}", driver, slot, - opts ? opts : "", opts ? "," : "", - id); - response = qmp(cmd); - g_free(cmd); - g_assert(response); - g_assert(!qdict_haskey(response, "error")); - QDECREF(response); + qtest_qmp_device_add(driver, id, "'addr': '%d'%s%s", slot, + opts ? ", " : "", opts ? opts : ""); } |