aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvihai Horon <avihaih@nvidia.com>2023-09-06 18:08:49 +0300
committerCédric Le Goater <clg@redhat.com>2023-09-11 08:34:06 +0200
commit8118349b1bc5c12e4017ddd7eb563fce752a5a9c (patch)
tree622af67e99c570fe43cd3ab2a72f2719d47084c5
parent38c482b4778595ee337761f73ec0730d6c47b404 (diff)
downloadqemu-8118349b1bc5c12e4017ddd7eb563fce752a5a9c.zip
qemu-8118349b1bc5c12e4017ddd7eb563fce752a5a9c.tar.gz
qemu-8118349b1bc5c12e4017ddd7eb563fce752a5a9c.tar.bz2
vfio/migration: Fail adding device with enable-migration=on and existing blocker
If a device with enable-migration=on is added and it causes a migration blocker, adding the device should fail with a proper error. This is not the case with multiple device migration blocker when the blocker already exists. If the blocker already exists and a device with enable-migration=on is added which causes a migration blocker, adding the device will succeed. Fix it by failing adding the device in such case. Fixes: 8bbcb64a71d8 ("vfio/migration: Make VFIO migration non-experimental") 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>
-rw-r--r--hw/vfio/common.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/hw/vfio/common.c b/hw/vfio/common.c
index 8a8d074..237101d 100644
--- a/hw/vfio/common.c
+++ b/hw/vfio/common.c
@@ -394,8 +394,7 @@ int vfio_block_multiple_devices_migration(VFIODevice *vbasedev, Error **errp)
{
int ret;
- if (multiple_devices_migration_blocker ||
- vfio_multiple_devices_migration_is_supported()) {
+ if (vfio_multiple_devices_migration_is_supported()) {
return 0;
}
@@ -405,6 +404,10 @@ int vfio_block_multiple_devices_migration(VFIODevice *vbasedev, Error **errp)
return -EINVAL;
}
+ if (multiple_devices_migration_blocker) {
+ return 0;
+ }
+
error_setg(&multiple_devices_migration_blocker,
"Multiple VFIO devices migration is supported only if all of "
"them support P2P migration");