diff options
author | Avihai Horon <avihaih@nvidia.com> | 2023-09-06 18:08:49 +0300 |
---|---|---|
committer | Cédric Le Goater <clg@redhat.com> | 2023-09-11 08:34:06 +0200 |
commit | 8118349b1bc5c12e4017ddd7eb563fce752a5a9c (patch) | |
tree | 622af67e99c570fe43cd3ab2a72f2719d47084c5 | |
parent | 38c482b4778595ee337761f73ec0730d6c47b404 (diff) | |
download | qemu-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.c | 7 |
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"); |