qemu/hw/vfio
Avihai Horon 64366eddf1 vfio/migration: Don't emit STOP_COPY VFIO migration QAPI event twice
When migrating a VFIO device that supports pre-copy, it is transitioned
to STOP_COPY twice: once in vfio_vmstate_change() and second time in
vfio_save_complete_precopy().

The second transition is harmless, as it's a STOP_COPY->STOP_COPY no-op
transition. However, with the newly added VFIO migration QAPI event, the
STOP_COPY event is undesirably emitted twice.

Prevent this by returning early in vfio_migration_set_state() if
new_state is the same as current device state.

Note that the STOP_COPY transition in vfio_save_complete_precopy() is
essential for VFIO devices that don't support pre-copy, for migrating an
already stopped guest and for snapshots.

Signed-off-by: Avihai Horon <avihaih@nvidia.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
2024-05-16 16:59:19 +02:00
..
amd-xgbe.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
ap.c vfio/ap: Make vfio_ap_register_irq_notifier() return a bool 2024-05-16 16:59:19 +02:00
calxeda-xgmac.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
ccw.c vfio/ccw: Make vfio_ccw_register_irq_notifier() return a bool 2024-05-16 16:59:19 +02:00
common.c vfio: Add Error** argument to .get_dirty_bitmap() handler 2024-05-16 16:59:19 +02:00
container-base.c vfio: Add Error** argument to .get_dirty_bitmap() handler 2024-05-16 16:59:19 +02:00
container.c vfio: Add Error** argument to .get_dirty_bitmap() handler 2024-05-16 16:59:19 +02:00
cpr.c vfio: allow cpr-reboot migration if suspended 2024-03-08 22:10:13 +01:00
display.c ui/console: Use qemu_dmabuf_new() and free() helpers instead 2024-05-14 17:14:12 +04:00
helpers.c hw/vfio/helpers: Fix missing ERRP_GUARD() for error_prepend() 2024-03-12 11:45:34 +01:00
igd.c *: Add missing includes of qemu/error-report.h 2023-03-22 15:06:57 +00:00
iommufd.c vfio/iommufd: Fix memory leak 2024-03-19 11:56:37 +01:00
Kconfig hw/vfio: Move the IGD quirk code to a separate file 2020-02-06 11:55:42 -07:00
meson.build vfio: register container for cpr 2024-03-08 22:10:13 +01:00
migration.c vfio/migration: Don't emit STOP_COPY VFIO migration QAPI event twice 2024-05-16 16:59:19 +02:00
pci-quirks.c hw/vfio/pci-quirks: Fix missing ERRP_GUARD() for error_prepend() 2024-03-12 11:45:45 +01:00
pci.c vfio/migration: Emit VFIO migration QAPI event 2024-05-16 16:59:19 +02:00
pci.h vfio/pci: migration: Skip config space check for Vendor Specific Information in VSC during restore/load 2024-05-16 16:59:19 +02:00
platform.c hw/vfio/platform: Fix missing ERRP_GUARD() for error_prepend() 2024-03-12 11:45:45 +01:00
spapr.c vfio/spapr: Introduce a sPAPR VFIOIOMMU QOM interface 2024-01-05 21:25:20 +01:00
trace-events migration: MigrationEvent for notifiers 2024-02-28 11:31:28 +08:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00