From: Nicholas Piggin <[email protected]> Migration tests can create new QPCI devices for the destination machine which may need to take on some state of the source machine after destination is complete.
Add a migration fixup helper and call it from ahci and nvme migration tests. This is currently a noop and will be used subsequently. Reviewed-by: Akihiko Odaki <[email protected]> Signed-off-by: Nicholas Piggin <[email protected]> Signed-off-by: Jishnu Warrier <[email protected]> Signed-off-by: Utkarsh Verma <[email protected]> --- tests/qtest/ahci-test.c | 1 + tests/qtest/libqos/pci.c | 4 ++++ tests/qtest/libqos/pci.h | 1 + tests/qtest/nvme-test.c | 4 +--- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/qtest/ahci-test.c b/tests/qtest/ahci-test.c index 043a916fdd..291f29e762 100644 --- a/tests/qtest/ahci-test.c +++ b/tests/qtest/ahci-test.c @@ -137,6 +137,7 @@ static void ahci_migrate(AHCIQState *from, AHCIQState *to, const char *uri) memcpy(to, from, sizeof(AHCIQState)); to->parent = tmp; to->dev = dev; + qpci_migrate_fixup(to->dev, from->dev); tmp = from->parent; dev = from->dev; diff --git a/tests/qtest/libqos/pci.c b/tests/qtest/libqos/pci.c index e9233c81e9..e78dd4d4c7 100644 --- a/tests/qtest/libqos/pci.c +++ b/tests/qtest/libqos/pci.c @@ -625,6 +625,10 @@ QPCIBar qpci_legacy_iomap(QPCIDevice *dev, uint16_t addr) return bar; } +void qpci_migrate_fixup(QPCIDevice *to, QPCIDevice *from) +{ +} + void add_qpci_address(QOSGraphEdgeOptions *opts, QPCIAddress *addr) { g_assert(addr); diff --git a/tests/qtest/libqos/pci.h b/tests/qtest/libqos/pci.h index c3a0f85fef..cfb7c17dd3 100644 --- a/tests/qtest/libqos/pci.h +++ b/tests/qtest/libqos/pci.h @@ -120,6 +120,7 @@ void qpci_memwrite(QPCIDevice *bus, QPCIBar token, uint64_t off, const void *buf, size_t len); QPCIBar qpci_iomap(QPCIDevice *dev, int barno, uint64_t *sizeptr); void qpci_iounmap(QPCIDevice *dev, QPCIBar addr); +void qpci_migrate_fixup(QPCIDevice *to, QPCIDevice *from); QPCIBar qpci_legacy_iomap(QPCIDevice *dev, uint16_t addr); void qpci_unplug_acpi_device_test(QTestState *qs, const char *id, uint8_t slot); diff --git a/tests/qtest/nvme-test.c b/tests/qtest/nvme-test.c index 09972b50ff..dfa59cfbce 100644 --- a/tests/qtest/nvme-test.c +++ b/tests/qtest/nvme-test.c @@ -517,8 +517,6 @@ static void test_migrate(void *obj, void *data, QGuestAllocator *alloc) test_migrate_setup_nvme_ctrl(ctrl); test_migrate_send_nvme_reqs(ctrl, test_reqs, ARRAY_SIZE(test_reqs)); - qpci_iounmap(ctrl->pdev, ctrl->bar); - dest_cmdline = g_string_new(qos_get_current_command_line()); g_string_append_printf(dest_cmdline, " -incoming %s", uri); @@ -528,8 +526,8 @@ static void test_migrate(void *obj, void *data, QGuestAllocator *alloc) /* Get access to PCI device from destination VM */ nvme = qos_allocate_objects(to, &ctrl->alloc); pdev = &nvme->dev; + qpci_migrate_fixup(pdev, ctrl->pdev); ctrl->pdev = pdev; - ctrl->bar = qpci_iomap(ctrl->pdev, 0, NULL); g_assert(pdev->bus->qts == to); /* Migrate VM */ -- 2.55.0
