[PATCH v2 2/7] qemuValidateDomainDefPCIFeature: Fix validation logic

Peter Krempa pkrempa at redhat.com
Mon Oct 11 13:02:07 UTC 2021


The error that "acpi-bridge-hotplug" is not supported would be triggered
only if both the ICH9 and PIIX don't support the capability and the
machine is q35. This makes no sense.

We want to check that the appropriate platform supports the appropriate
feature.

Fixes: 7300ccc9b3e
Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/qemu/qemu_validate.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index e530368cb3..7eb9a37870 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -179,9 +179,6 @@ qemuValidateDomainDefPCIFeature(const virDomainDef *def,
                                 int feature)
 {
     size_t i;
-    bool q35Dom = qemuDomainIsQ35(def);
-    bool q35cap = q35Dom && virQEMUCapsGet(qemuCaps,
-                                           QEMU_CAPS_ICH9_ACPI_HOTPLUG_BRIDGE);

     if (def->features[feature] == VIR_TRISTATE_SWITCH_ABSENT)
         return 0;
@@ -198,9 +195,9 @@ qemuValidateDomainDefPCIFeature(const virDomainDef *def,
                                    virArchToString(def->os.arch));
                     return -1;
                 }
-                if (!q35cap &&
-                    !virQEMUCapsGet(qemuCaps,
-                                    QEMU_CAPS_PIIX4_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;
-- 
2.31.1




More information about the libvir-list mailing list