]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
domain_validate.c: put IOMMU validation into a new function
authorDaniel Henrique Barboza <danielhb413@gmail.com>
Fri, 11 Dec 2020 12:58:28 +0000 (09:58 -0300)
committerDaniel Henrique Barboza <danielhb413@gmail.com>
Mon, 14 Dec 2020 12:39:38 +0000 (09:39 -0300)
All other validations from virDomainDefValidateInternal() are done
in their own functions. Take IOMMU validation out of the function
body and into its own function.

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/conf/domain_validate.c

index 0ea9d6805cbab4a2799674cafe03b6950b2c4e28..d920ad397eaec6205f0fc78811fe317af94f515c 100644 (file)
@@ -1042,6 +1042,31 @@ virDomainDefCputuneValidate(const virDomainDef *def)
 #undef CPUTUNE_VALIDATE_QUOTA
 
 
+static int
+virDomainDefIOMMUValidate(const virDomainDef *def)
+{
+    if (!def->iommu)
+        return 0;
+
+    if (def->iommu->intremap == VIR_TRISTATE_SWITCH_ON &&
+        def->features[VIR_DOMAIN_FEATURE_IOAPIC] != VIR_DOMAIN_IOAPIC_QEMU) {
+        virReportError(VIR_ERR_XML_ERROR, "%s",
+                       _("IOMMU interrupt remapping requires split I/O APIC "
+                         "(ioapic driver='qemu')"));
+        return -1;
+    }
+
+    if (def->iommu->eim == VIR_TRISTATE_SWITCH_ON &&
+        def->iommu->intremap != VIR_TRISTATE_SWITCH_ON) {
+        virReportError(VIR_ERR_XML_ERROR, "%s",
+                       _("IOMMU eim requires interrupt remapping to be enabled"));
+        return -1;
+    }
+
+    return 0;
+}
+
+
 static int
 virDomainDefValidateInternal(const virDomainDef *def,
                              virDomainXMLOptionPtr xmlopt)
@@ -1058,22 +1083,8 @@ virDomainDefValidateInternal(const virDomainDef *def,
     if (virDomainDefValidateAliases(def, NULL) < 0)
         return -1;
 
-    if (def->iommu &&
-        def->iommu->intremap == VIR_TRISTATE_SWITCH_ON &&
-        def->features[VIR_DOMAIN_FEATURE_IOAPIC] != VIR_DOMAIN_IOAPIC_QEMU) {
-        virReportError(VIR_ERR_XML_ERROR, "%s",
-                       _("IOMMU interrupt remapping requires split I/O APIC "
-                         "(ioapic driver='qemu')"));
-        return -1;
-    }
-
-    if (def->iommu &&
-        def->iommu->eim == VIR_TRISTATE_SWITCH_ON &&
-        def->iommu->intremap != VIR_TRISTATE_SWITCH_ON) {
-        virReportError(VIR_ERR_XML_ERROR, "%s",
-                       _("IOMMU eim requires interrupt remapping to be enabled"));
+    if (virDomainDefIOMMUValidate(def) < 0)
         return -1;
-    }
 
     if (virDomainDefLifecycleActionValidate(def) < 0)
         return -1;