]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: caps: Add lockout for -blockdev if QEMU_CAPS_SCSI_DISK_DEVICE_ID is not present
authorPeter Krempa <pkrempa@redhat.com>
Mon, 28 Jan 2019 16:12:01 +0000 (17:12 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 8 Feb 2019 09:11:19 +0000 (10:11 +0100)
Avoid regressions by disallowing the BLOCKDEV capability.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
src/qemu/qemu_capabilities.c

index 24d416f436f8a260e23e6595d3d7f24f201cc3af..3e3af41a96417b64f5abaacf24e1629a54d66752 100644 (file)
@@ -4331,6 +4331,11 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
             virQEMUCapsClear(qemuCaps, QEMU_CAPS_SEV_GUEST);
     }
 
+    /* To avoid guest ABI regression, blockdev shall be enabled only when
+     * we are able to pass the custom 'device_id' for SCSI disks and cdroms. */
+    if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SCSI_DISK_DEVICE_ID))
+        virQEMUCapsClear(qemuCaps, QEMU_CAPS_BLOCKDEV);
+
     ret = 0;
  cleanup:
     return ret;