]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Revert "qemu: capabilities: Remove QEMU_CAPS_PIIX4_ACPI_HOTPLUG_BRIDGE"
authorLaine Stump <laine@redhat.com>
Tue, 19 Oct 2021 18:33:34 +0000 (14:33 -0400)
committerLaine Stump <laine@redhat.com>
Tue, 26 Oct 2021 03:18:40 +0000 (23:18 -0400)
This reverts commit 618e8665db2e4c1a8e9a227045b99b48f6110c06.

This is the first in a series of 10 commits that revert (in reverse
order) the changes to add the <acpi-hotplug-bridge state='on|off'/>
switch to libvirt domain XML, which unfortunately needs to be removed
due to QEMU developers discovering a flaw with the design of the QEMU
commandline switch used to implement the libvirt switch that will
likely result in a new and different method of selecting hotplug
modes. Because the libvirt switch has not been in any official
releases of libvirt, we are still able to remove it completely, rather
than deprecating it.

The original commits began with commit
58ba0f6a3d7342fba29edbbf2bb9cb5497c870e5. The other original commit
IDs are documented in each revert commit.

Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Ani Sinha <ani@anisinha.ca>
17 files changed:
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
src/qemu/qemu_command.c
src/qemu/qemu_validate.c
tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.2.0.x86_64.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.x86_64.xml

index 6e72a1845513c7ad55ed95c88c5742b1a77dd654..f58d68031ba979736a1869e6e6681de8fd771030 100644 (file)
@@ -644,10 +644,11 @@ VIR_ENUM_IMPL(virQEMUCaps,
               "virtio-mem-pci", /* QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI */
               "memory-backend-file.reserve", /* QEMU_CAPS_MEMORY_BACKEND_RESERVE */
               "piix4.acpi-root-pci-hotplug", /* QEMU_CAPS_PIIX4_ACPI_ROOT_PCI_HOTPLUG */
+              "piix4.acpi-hotplug-bridge", /* QEMU_CAPS_PIIX4_ACPI_HOTPLUG_BRIDGE */
               "ich9.acpi-hotplug-bridge", /* QEMU_CAPS_ICH9_ACPI_HOTPLUG_BRIDGE */
-              "netdev.json", /* QEMU_CAPS_NETDEV_JSON */
 
               /* 415 */
+              "netdev.json", /* QEMU_CAPS_NETDEV_JSON */
               "chardev.json", /* QEMU_CAPS_CHARDEV_JSON */
               "device.json", /* QEMU_CAPS_DEVICE_JSON */
               "query-dirty-rate", /* QEMU_CAPS_QUERY_DIRTY_RATE */
@@ -1470,6 +1471,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsPiix4PM[] = {
     { "disable_s3", QEMU_CAPS_PIIX_DISABLE_S3, NULL },
     { "disable_s4", QEMU_CAPS_PIIX_DISABLE_S4, NULL },
     { "acpi-root-pci-hotplug", QEMU_CAPS_PIIX4_ACPI_ROOT_PCI_HOTPLUG, NULL },
+    { "acpi-pci-hotplug-with-bridge-support", QEMU_CAPS_PIIX4_ACPI_HOTPLUG_BRIDGE, NULL },
 };
 
 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsUSBRedir[] = {
index 338470ac5d5ee300cc25905a0e48516d8f095e77..23f21418c25b61ca67603f667866ccf9377340ef 100644 (file)
@@ -624,10 +624,11 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI, /* -device virtio-mem-pci */
     QEMU_CAPS_MEMORY_BACKEND_RESERVE, /* -object memory-backend-*.reserve= */
     QEMU_CAPS_PIIX4_ACPI_ROOT_PCI_HOTPLUG, /* -M pc PIIX4_PM.acpi-root-pci-hotplug */
+    QEMU_CAPS_PIIX4_ACPI_HOTPLUG_BRIDGE, /* -M pc PIIX4_PM.acpi-pci-hotplug-with-bridge-support */
     QEMU_CAPS_ICH9_ACPI_HOTPLUG_BRIDGE, /* -M q35 ICH9-LPC.acpi-pci-hotplug-with-bridge-support */
-    QEMU_CAPS_NETDEV_JSON, /* -netdev accepts JSON */
 
     /* 415 */
+    QEMU_CAPS_NETDEV_JSON, /* -netdev accepts JSON */
     QEMU_CAPS_CHARDEV_JSON, /* -chardev accepts JSON */
     QEMU_CAPS_DEVICE_JSON, /* -device accepts JSON */
     QEMU_CAPS_QUERY_DIRTY_RATE, /* accepts query-dirty-rate */
index 335bad5616d4dfd1e7b15ec41f24622bce1f9f3e..60edfc91b247d1d85f3261a600d9c1ab1d39df87 100644 (file)
@@ -6461,7 +6461,8 @@ qemuBuildPMCommandLine(virCommand *cmd,
     if (acpihp_br != VIR_TRISTATE_SWITCH_ABSENT) {
         const char *pm_object = NULL;
 
-        if (!qemuDomainIsQ35(def))
+        if (!qemuDomainIsQ35(def) &&
+            virQEMUCapsGet(qemuCaps, QEMU_CAPS_PIIX4_ACPI_HOTPLUG_BRIDGE))
             pm_object = "PIIX4_PM";
 
         if (qemuDomainIsQ35(def) &&
index 3045e4b64b879d2534249ab04b043a03e02b3f75..1ffc261c58a4ebf15fb201525e8ca36ef0457611 100644 (file)
@@ -196,8 +196,8 @@ qemuValidateDomainDefPCIFeature(const virDomainDef *def,
                     return -1;
                 }
 
-                if (qemuDomainIsQ35(def) &&
-                    !virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_ACPI_HOTPLUG_BRIDGE)) {
+                if ((qemuDomainIsQ35(def) && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_ACPI_HOTPLUG_BRIDGE)) ||
+                    (!qemuDomainIsQ35(def) && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_PIIX4_ACPI_HOTPLUG_BRIDGE))) {
                     virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                                    _("acpi-bridge-hotplug is not available with this QEMU binary"));
                     return -1;
index 559bf1676688068fa0522f290ca2696e4b4a0f26..6544b7873076ff74b0c88375bb03aedb86789dab 100644 (file)
   <flag name='am53c974'/>
   <flag name='cpu-max'/>
   <flag name='input-linux'/>
+  <flag name='piix4.acpi-hotplug-bridge'/>
   <version>2011000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100288</microcodeVersion>
index 745110142f2b09dd20acb4ca2c70e160d21455cb..c66a140f8d9eaa9956c1aab515e215cde020c1d8 100644 (file)
   <flag name='cpu-max'/>
   <flag name='input-linux'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='piix4.acpi-hotplug-bridge'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100289</microcodeVersion>
index 5acce281b176bc0494e78f3dc1609e6c6689a4f4..33daa45713cde4d0634891493a14690e0221cfac 100644 (file)
   <flag name='cpu-max'/>
   <flag name='input-linux'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='piix4.acpi-hotplug-bridge'/>
   <version>3000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100239</microcodeVersion>
index 92b3b10147cd4ef38e96c2c223c52490df0ed310..fcfa890be93c9c0362ebd465d28f2568f793ea09 100644 (file)
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='piix4.acpi-hotplug-bridge'/>
   <version>3000092</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100240</microcodeVersion>
index 28643ca67d298b2202267da87705451dab18b855..c87e3d46c015ca4a5d1828b2238f0644e18b66da 100644 (file)
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='piix4.acpi-hotplug-bridge'/>
   <version>4000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100240</microcodeVersion>
index 7a38f44deae5344f571126f4a5cf75c163bf3d81..c143b16f52f787bb375d740ad4f2523a4955e310 100644 (file)
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='piix4.acpi-hotplug-bridge'/>
   <version>4001000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100241</microcodeVersion>
index d3dde76939c2fba0e0d356763dc648c7659c8ef1..16be4bff7cefefa33b75f8cef0a4fa34b8bef59d 100644 (file)
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='piix4.acpi-hotplug-bridge'/>
   <version>4002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>
index 3e99e52962290ad296fa1a7dc94ee98ef37f6bdf..c571cd405d0630bb78d83041987b1a0d98865f59 100644 (file)
   <flag name='input-linux'/>
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
+  <flag name='piix4.acpi-hotplug-bridge'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100241</microcodeVersion>
index 18b7897bfa4c11f3b5a36d3d7b084584214c9861..e17da3df1fdfede4439d4c09573cfc6bfd7a0356 100644 (file)
   <flag name='query-display-options'/>
   <flag name='virtio-blk.queue-size'/>
   <flag name='virtio-mem-pci'/>
+  <flag name='piix4.acpi-hotplug-bridge'/>
   <version>5001000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100242</microcodeVersion>
index 923aa240ad2883cc768145a9da69f926d1e03696..4c6cc00545bbd998e46f957f761671737d4d4dfe 100644 (file)
   <flag name='virtio-blk.queue-size'/>
   <flag name='virtio-mem-pci'/>
   <flag name='piix4.acpi-root-pci-hotplug'/>
+  <flag name='piix4.acpi-hotplug-bridge'/>
   <flag name='query-dirty-rate'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
index 78ede15fb301715a0ff2815bbed1a6f557cc2e5d..0f255938875801d131ab33d37b0a56d3f3de0867 100644 (file)
   <flag name='virtio-blk.queue-size'/>
   <flag name='virtio-mem-pci'/>
   <flag name='piix4.acpi-root-pci-hotplug'/>
+  <flag name='piix4.acpi-hotplug-bridge'/>
   <flag name='query-dirty-rate'/>
   <version>6000000</version>
   <kvmVersion>0</kvmVersion>
index e60ed4705bb463d3a092afcb48ca0ba19bc5f03b..6f9a2b20d5bdb51caf2a3a544079a8d4cdb1435c 100644 (file)
   <flag name='virtio-mem-pci'/>
   <flag name='memory-backend-file.reserve'/>
   <flag name='piix4.acpi-root-pci-hotplug'/>
+  <flag name='piix4.acpi-hotplug-bridge'/>
   <flag name='ich9.acpi-hotplug-bridge'/>
   <flag name='query-dirty-rate'/>
   <flag name='rbd-encryption'/>
index 5622745347b1d0c3f6c956ac66c7ba211c6e4d7f..c4e971c4b4432e72092b36a8147100f93cd728fc 100644 (file)
   <flag name='virtio-mem-pci'/>
   <flag name='memory-backend-file.reserve'/>
   <flag name='piix4.acpi-root-pci-hotplug'/>
+  <flag name='piix4.acpi-hotplug-bridge'/>
   <flag name='ich9.acpi-hotplug-bridge'/>
   <flag name='device.json'/>
   <flag name='query-dirty-rate'/>