]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu_command.c: move QEMU_CAPS_FW_CFG validation to qemu_validate.c
authorDaniel Henrique Barboza <danielhb413@gmail.com>
Fri, 9 Oct 2020 20:09:03 +0000 (17:09 -0300)
committerDaniel Henrique Barboza <danielhb413@gmail.com>
Thu, 15 Oct 2020 13:54:27 +0000 (10:54 -0300)
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/qemu/qemu_command.c
src/qemu/qemu_validate.c
tests/qemuxml2xmltest.c

index f350800ff0ac3a190e6ae7455225263841f23c3f..87d76827e8ff14a018f1dd984cb5bcd57c7fffea 100644 (file)
@@ -5758,7 +5758,6 @@ qemuBuildSmbiosCommandLine(virCommandPtr cmd,
 
 static int
 qemuBuildSysinfoCommandLine(virCommandPtr cmd,
-                            virQEMUCapsPtr qemuCaps,
                             const virDomainDef *def)
 {
     size_t i;
@@ -5771,12 +5770,6 @@ qemuBuildSysinfoCommandLine(virCommandPtr cmd,
         if (def->sysinfo[i]->type != VIR_SYSINFO_FWCFG)
             continue;
 
-        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_FW_CFG)) {
-            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                           _("fw_cfg is not supported with this QEMU"));
-            return -1;
-        }
-
         for (j = 0; j < def->sysinfo[i]->nfw_cfgs; j++) {
             const virSysinfoFWCfgDef *f = &def->sysinfo[i]->fw_cfgs[j];
             g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
@@ -9928,7 +9921,7 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
     if (qemuBuildSmbiosCommandLine(cmd, driver, def) < 0)
         return NULL;
 
-    if (qemuBuildSysinfoCommandLine(cmd, qemuCaps, def) < 0)
+    if (qemuBuildSysinfoCommandLine(cmd, def) < 0)
         return NULL;
 
     if (qemuBuildVMGenIDCommandLine(cmd, def) < 0)
index 6906c313ddfdbf9d6b1babe276a40eac1918a542..4a7a25ae8e5c20b9da9a9f92c6a5385bc27ac0b9 100644 (file)
@@ -778,10 +778,17 @@ qemuValidateDefGetVcpuHotplugGranularity(const virDomainDef *def)
 
 static int
 qemuValidateDomainDefSysinfo(const virSysinfoDef *def,
-                             virQEMUCapsPtr qemuCaps G_GNUC_UNUSED)
+                             virQEMUCapsPtr qemuCaps)
 {
     size_t i;
 
+    if (def->type == VIR_SYSINFO_FWCFG &&
+        !virQEMUCapsGet(qemuCaps, QEMU_CAPS_FW_CFG)) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                       _("fw_cfg is not supported with this QEMU"));
+        return -1;
+    }
+
     for (i = 0; i < def->nfw_cfgs; i++) {
         const virSysinfoFWCfgDef *f = &def->fw_cfgs[i];
 
index 2213dc8615a65b808b9d856c3be69837c7eb69f0..6c551f18abd76a1f640366705a0d34712af5585c 100644 (file)
@@ -1153,7 +1153,7 @@ mymain(void)
             QEMU_CAPS_DEVICE_IVSHMEM_PLAIN, QEMU_CAPS_DEVICE_IVSHMEM_DOORBELL);
     DO_TEST("smbios", NONE);
     DO_TEST("smbios-multiple-type2", NONE);
-    DO_TEST("smbios-type-fwcfg", NONE);
+    DO_TEST("smbios-type-fwcfg", QEMU_CAPS_FW_CFG);
 
     DO_TEST_CAPS_LATEST("os-firmware-bios");
     DO_TEST_CAPS_LATEST("os-firmware-efi");