]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Retire QEMU_CAPS_BLOCKDEV
authorPeter Krempa <pkrempa@redhat.com>
Thu, 21 Jul 2022 15:16:23 +0000 (17:16 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 11 Aug 2022 13:25:36 +0000 (15:25 +0200)
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
31 files changed:
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
src/qemu/qemu_process.c
tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_6.0.0.aarch64.xml
tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_6.2.0.aarch64.xml
tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml
tests/qemucapabilitiesdata/caps_6.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_7.0.0.aarch64.xml
tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_7.1.0.x86_64.xml
tests/qemuhotplugtest.c
tests/testutilsqemu.c

index 975383d2b62b2872bab911738eb411bc2029cb71..a4f595151bcc7d2cbf3d7928819cf8824abfdf24 100644 (file)
@@ -504,7 +504,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
               "usb-storage.werror", /* X_QEMU_CAPS_USB_STORAGE_WERROR */
               "egl-headless", /* QEMU_CAPS_EGL_HEADLESS */
               "vfio-pci.display", /* QEMU_CAPS_VFIO_PCI_DISPLAY */
-              "blockdev", /* QEMU_CAPS_BLOCKDEV */
+              "blockdev", /* X_QEMU_CAPS_BLOCKDEV */
 
               /* 315 */
               "vfio-ap", /* QEMU_CAPS_DEVICE_VFIO_AP */
@@ -5223,10 +5223,6 @@ virQEMUCapsInitQMPBasicArch(virQEMUCaps *qemuCaps)
 static void
 virQEMUCapsInitQMPVersionCaps(virQEMUCaps *qemuCaps)
 {
-    /* While the removal of pre-blockdev code is in progress we always hard-code
-     * the support for QEMU_CAPS_BLOCKDEV */
-    virQEMUCapsSet(qemuCaps, QEMU_CAPS_BLOCKDEV);
-
     /* -enable-fips is deprecated in QEMU 5.2.0, and QEMU
      * should be built with gcrypt to achieve FIPS compliance
      * automatically / implicitly
@@ -6092,13 +6088,13 @@ struct virQEMUCapsDomainFeatureCapabilityTuple {
 
 /**
  * This maps the qemu features to the entries in <features> of the domain
- * capability XML.
+ * capability XML. Use QEMU_CAPS_LAST to always enable a domain feature.
  * */
 static const struct virQEMUCapsDomainFeatureCapabilityTuple domCapsTuples[] = {
     { VIR_DOMAIN_CAPS_FEATURE_IOTHREADS, QEMU_CAPS_OBJECT_IOTHREAD },
     { VIR_DOMAIN_CAPS_FEATURE_VMCOREINFO, QEMU_CAPS_DEVICE_VMCOREINFO },
     { VIR_DOMAIN_CAPS_FEATURE_GENID, QEMU_CAPS_DEVICE_VMGENID },
-    { VIR_DOMAIN_CAPS_FEATURE_BACKING_STORE_INPUT, QEMU_CAPS_BLOCKDEV },
+    { VIR_DOMAIN_CAPS_FEATURE_BACKING_STORE_INPUT, QEMU_CAPS_LAST },
     { VIR_DOMAIN_CAPS_FEATURE_BACKUP, QEMU_CAPS_INCREMENTAL_BACKUP },
 };
 
@@ -6110,7 +6106,8 @@ virQEMUCapsFillDomainFeaturesFromQEMUCaps(virQEMUCaps *qemuCaps,
     size_t i;
 
     for (i = 0; i < G_N_ELEMENTS(domCapsTuples); i++) {
-        if (virQEMUCapsGet(qemuCaps, domCapsTuples[i].qemucap))
+        if (virQEMUCapsGet(qemuCaps, domCapsTuples[i].qemucap) ||
+            domCapsTuples[i].qemucap == QEMU_CAPS_LAST)
             domCaps->features[domCapsTuples[i].domcap] = VIR_TRISTATE_BOOL_YES;
         else
             domCaps->features[domCapsTuples[i].domcap] = VIR_TRISTATE_BOOL_NO;
index 39e8f0674dac99d2450675a7c4199ed007e8df2b..f46e01ed814c0903a8a48d4aa6884a5be9b8024c 100644 (file)
@@ -483,7 +483,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     X_QEMU_CAPS_USB_STORAGE_WERROR, /* -device usb-storage,werror=..,rerror=.. */
     QEMU_CAPS_EGL_HEADLESS, /* -display egl-headless */
     QEMU_CAPS_VFIO_PCI_DISPLAY, /* -device vfio-pci.display */
-    QEMU_CAPS_BLOCKDEV, /* -blockdev and blockdev-add are supported */
+    X_QEMU_CAPS_BLOCKDEV, /* -blockdev and blockdev-add are supported */
 
     /* 315 */
     QEMU_CAPS_DEVICE_VFIO_AP, /* -device vfio-ap */
index 98cd03d0923cea7443963e4289c18fa816c8dacb..efd87069579c0b3ea9f9b29fb7a8d7ef183a478f 100644 (file)
@@ -5573,11 +5573,6 @@ qemuProcessStartUpdateCustomCaps(virDomainObj *vm)
                 return -1;
             }
 
-            /* The code is being cleaned up to always assume the support for
-             * -blockdev thus we must no longer allow users to clear it */
-            if (tmp == QEMU_CAPS_BLOCKDEV)
-                continue;
-
             virQEMUCapsClear(priv->qemuCaps, tmp);
         }
     }
@@ -5602,11 +5597,6 @@ qemuProcessStartUpdateCustomCaps(virDomainObj *vm)
                 return -1;
             }
 
-            /* The code is being cleaned up to always assume the support for
-             * -blockdev thus we must no longer allow users to clear it */
-            if (tmp == QEMU_CAPS_BLOCKDEV)
-                continue;
-
             virQEMUCapsClear(priv->qemuCaps, tmp);
         }
     }
index 8b6b00600c081b7aecf37d68ddc97a4776ddfce2..9227cb6271a7e82d69451bff6c99537cfe54e8c6 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 176ada07973b0b40ee64f09a9a6ac489f8ea154b..bdcc7d127d91e2122a5d271b34474a2df86f4adb 100644 (file)
   <flag name='machine.pseries.cap-htm'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index ed0c7d00006e76a847b72b15d80136bcc1ff33d3..4ce4a018c25907b637f35fbccedd970c65057ea8 100644 (file)
@@ -78,7 +78,6 @@
   <flag name='vhost-vsock'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='vfio-ap'/>
   <flag name='zpci'/>
   <flag name='memory-backend-memfd'/>
index e79ae14ff06eb6fb152e04739dd9019bd45631f6..f729c4af5ecf16c67af0b8b0771363ed22575453 100644 (file)
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index a5684067b85c62bf609af96713f0d53ac6b2d302..5bcfe88001fc0fc057713769ef05ca13ae880592 100644 (file)
   <flag name='tpm-emulator'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 6bf0c5cef60c8ad0e98f3c7ce78e366f4e6e2364..57dd8259b36a6d60a6ffc2058a6dd55887375292 100644 (file)
   <flag name='machine.pseries.cap-htm'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 8131713d64c7e011327b076637d355ed6f7b2cad..0beb82dc39ad007ba145559713cc48633893cbc9 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 7ccf0455213fc92e9d21e0590488d8fe36c7bd31..a29a59b4b7ba54361a9f44c3e0cc33d99556ac30 100644 (file)
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index b3499c5062c3d22218dca6a39eb62209f0a7aca2..7a79c33fce1a43ca71fb800665165dc9f88391ae 100644 (file)
@@ -41,7 +41,6 @@
   <flag name='memory-backend-file.discard-data'/>
   <flag name='screendump_device'/>
   <flag name='egl-headless'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 26e9b8c5c2c52c662ed7be782a5209fb3daa96f5..b5f1ad4eb38ea1a295a89bad1e36bf62bfca5ca8 100644 (file)
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 531ee42bd909f728a4cc05f858748d64f003387a..0325abbd6a1e0f514a2bd0d099add3a399359c89 100644 (file)
   <flag name='tpm-emulator'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 6942a28eb78631e0ff64da0d728fa5620a4b6cf8..3879d8f45033078dacb1931dd52629455c0bc42a 100644 (file)
   <flag name='machine.pseries.cap-htm'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 1b1812083cae7fd41cd4c365334e4d71037844b2..ba5e0f126d4d3ee18cac1a0453200a98d4b35daa 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 811ba2cae772fd78e46fde907b521bb8dfc04996..394f2faa7ebd1b651b57a2097b0b2195ad5086a6 100644 (file)
@@ -76,7 +76,6 @@
   <flag name='vhost-vsock'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='vfio-ap'/>
   <flag name='zpci'/>
   <flag name='memory-backend-memfd'/>
index 4d79c6a155081389c89561168ea69c6bb758db49..72e6c10c4c3ec29a4a0bb1e2301ac4e74788e5fe 100644 (file)
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 14923ef2591fbd07a450a409b91af11eefda78d7..05519801042287761f52f59111cc67f834c019e6 100644 (file)
   <flag name='tpm-emulator'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 53ef416e2d67511e63471aecfc2dcdfab48e2445..f62cec0b2c6f9d7df996f151aee0a9961ff48bb3 100644 (file)
@@ -76,7 +76,6 @@
   <flag name='vhost-vsock'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='vfio-ap'/>
   <flag name='zpci'/>
   <flag name='memory-backend-memfd'/>
index 0b0ede3a9494a68a219a9b20fcbf84dbea53e3de..2dacec1b8ec491b8c4300ec2623c29a630fbc01c 100644 (file)
   <flag name='sev-guest'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 9addb44fffed965ae36c56a4d2697ea8e70b3551..9098c04304c00eca5a98534a27460d27a8c37bd1 100644 (file)
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 8bd8df794868366efcfb9a7665d1b788e495256f..4d3118a8080f044dcf9fcfa91549df9e9a55273d 100644 (file)
   <flag name='tpm-emulator'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index a278d8bb0835b78256354642952c2298ceb1e2bd..4ad1c06d54299170ec7488d5077b6b52549cc292 100644 (file)
   <flag name='machine.pseries.cap-hpt-max-page-size'/>
   <flag name='machine.pseries.cap-htm'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 8cb0b586530457d6353c1e813bed7c246ee31619..05585b60c52e1cf3cb93afa2747e165dc61b5e32 100644 (file)
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index f0d203b8d24e175037f511c6bc16c2e41b235e2d..b15d1a08b0e13adb128c5f7a6556e72f26ebeda7 100644 (file)
   <flag name='tpm-emulator'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 447bdf9fe88e3adda53f40824fe6c43c6f867d49..e8be5facb1db4f8eab831e3ae2b68e27a6d1c24d 100644 (file)
   <flag name='machine.pseries.cap-htm'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 2eeabbfc4454dd49ed3c89eb98456770b564c6c8..172ba4557073d609dc8ff92579180ae124c6397e 100644 (file)
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index f61f3a7cd33934ac9f3ed8cc9c6491afdaa60c2b..ac143d28304b062372695f14a6bb14c0dedd48a5 100644 (file)
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
-  <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 3e7f72b9d56a0155e3a71f586964aad78915563e..e59158dca027b964c8156654c2c318a527b607c3 100644 (file)
@@ -73,7 +73,6 @@ qemuHotplugCreateObjects(virDomainXMLOption *xmlopt,
 
     virQEMUCapsInitQMPBasicArch(priv->qemuCaps);
 
-    virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV);
     virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_VIRTIO_SCSI);
     virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_USB_STORAGE);
     virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_CCW);
index bff8191552038eb6e968ddd622c278ee3c488d86..6d3decdc16b4c09039682c1b89ef7c38d58fc50d 100644 (file)
@@ -883,9 +883,6 @@ testQemuInfoSetArgs(struct testQemuInfo *info,
     if (!(info->args.fakeCaps = virQEMUCapsNew()))
         abort();
 
-    /* until removal of the flags is completed we force them also in tests */
-    virQEMUCapsSet(info->args.fakeCaps, QEMU_CAPS_BLOCKDEV);
-
     info->conf = conf;
     info->args.newargs = true;