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 <pkre...@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

Reply via email to