]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: command: move validation of vmcoreinfo to qemu_domain.c
authorDaniel Henrique Barboza <danielhb413@gmail.com>
Wed, 18 Dec 2019 00:36:03 +0000 (21:36 -0300)
committerCole Robinson <crobinso@redhat.com>
Wed, 18 Dec 2019 18:01:36 +0000 (13:01 -0500)
Move the validation of vmcoreinfo from qemuBuildVMCoreInfoCommandLine()
to qemuDomainDefValidateFeatures(), allowing for validation
at domain define time.

qemuxml2xmltest.c was changed to account for this caps being
now validated at this earlier stage.

Reviewed-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/qemu/qemu_command.c
src/qemu/qemu_domain.c
tests/qemuxml2xmltest.c

index 1d6607db2cf88d60d0c262a54f62f5b05d6d927e..9cb1af6723ca9c7615e79aaac6c8acbb98a3ccd9 100644 (file)
@@ -9223,21 +9223,13 @@ qemuBuildSEVCommandLine(virDomainObjPtr vm, virCommandPtr cmd,
 
 static int
 qemuBuildVMCoreInfoCommandLine(virCommandPtr cmd,
-                               const virDomainDef *def,
-                               virQEMUCapsPtr qemuCaps)
+                               const virDomainDef *def)
 {
     virTristateSwitch vmci = def->features[VIR_DOMAIN_FEATURE_VMCOREINFO];
 
     if (vmci != VIR_TRISTATE_SWITCH_ON)
         return 0;
 
-    if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VMCOREINFO)) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                       _("vmcoreinfo is not available "
-                         "with this QEMU binary"));
-        return -1;
-    }
-
     virCommandAddArgList(cmd, "-device", "vmcoreinfo", NULL);
     return 0;
 }
@@ -9939,7 +9931,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
     if (qemuBuildNVRAMCommandLine(cmd, def) < 0)
         return NULL;
 
-    if (qemuBuildVMCoreInfoCommandLine(cmd, def, qemuCaps) < 0)
+    if (qemuBuildVMCoreInfoCommandLine(cmd, def) < 0)
         return NULL;
 
     if (qemuBuildSEVCommandLine(vm, cmd, def->sev) < 0)
index f6683d11e05b408bdb1ef1fcb58101390fa3091a..2dbe6f645434b84dd7e409148117524d1f861001 100644 (file)
@@ -5149,6 +5149,16 @@ qemuDomainDefValidateFeatures(const virDomainDef *def,
             }
             break;
 
+        case VIR_DOMAIN_FEATURE_VMCOREINFO:
+            if (def->features[i] == VIR_TRISTATE_SWITCH_ON &&
+                !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_VMCOREINFO)) {
+                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                              _("vmcoreinfo is not available "
+                                "with this QEMU binary"));
+                return -1;
+            }
+            break;
+
         case VIR_DOMAIN_FEATURE_ACPI:
         case VIR_DOMAIN_FEATURE_APIC:
         case VIR_DOMAIN_FEATURE_PAE:
@@ -5159,7 +5169,6 @@ qemuDomainDefValidateFeatures(const virDomainDef *def,
         case VIR_DOMAIN_FEATURE_PVSPINLOCK:
         case VIR_DOMAIN_FEATURE_CAPABILITIES:
         case VIR_DOMAIN_FEATURE_PMU:
-        case VIR_DOMAIN_FEATURE_VMCOREINFO:
         case VIR_DOMAIN_FEATURE_MSRS:
         case VIR_DOMAIN_FEATURE_LAST:
             break;
index 64321bcb8011b0e51b6f74b0c022d12ea8732e35..5ab00e5552c362ac5f5578d785caa13af9127074 100644 (file)
@@ -1330,7 +1330,7 @@ mymain(void)
     DO_TEST("cpu-check-default-none2", NONE);
     DO_TEST("cpu-check-default-partial", NONE);
     DO_TEST("cpu-check-default-partial2", NONE);
-    DO_TEST("vmcoreinfo", NONE);
+    DO_TEST("vmcoreinfo", QEMU_CAPS_DEVICE_VMCOREINFO);
 
     DO_TEST("smartcard-host", QEMU_CAPS_CCID_EMULATED);
     DO_TEST("smartcard-host-certificates", QEMU_CAPS_CCID_EMULATED);