]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Use switch in virDomainDefFeaturesCheckABIStability()
authorAndrea Bolognani <abologna@redhat.com>
Thu, 1 Feb 2018 11:31:57 +0000 (12:31 +0100)
committerAndrea Bolognani <abologna@redhat.com>
Tue, 13 Feb 2018 13:39:57 +0000 (14:39 +0100)
The compiler can make sure we are handling all features.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
src/conf/domain_conf.c

index fb732a0c2af4fab00dfe8aa781632cde64a7f0af..91e53547291d27334311ca5bf6af965ffde0dbb9 100644 (file)
@@ -21324,14 +21324,39 @@ virDomainDefFeaturesCheckABIStability(virDomainDefPtr src,
     size_t i;
 
     for (i = 0; i < VIR_DOMAIN_FEATURE_LAST; i++) {
-        if (src->features[i] != dst->features[i]) {
-            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                           _("State of feature '%s' differs: "
-                             "source: '%s', destination: '%s'"),
-                           virDomainFeatureTypeToString(i),
-                           virTristateSwitchTypeToString(src->features[i]),
-                           virTristateSwitchTypeToString(dst->features[i]));
-            return false;
+        const char *featureName = virDomainFeatureTypeToString(i);
+
+        switch ((virDomainFeature) i) {
+        case VIR_DOMAIN_FEATURE_ACPI:
+        case VIR_DOMAIN_FEATURE_APIC:
+        case VIR_DOMAIN_FEATURE_PAE:
+        case VIR_DOMAIN_FEATURE_HAP:
+        case VIR_DOMAIN_FEATURE_VIRIDIAN:
+        case VIR_DOMAIN_FEATURE_PRIVNET:
+        case VIR_DOMAIN_FEATURE_HYPERV:
+        case VIR_DOMAIN_FEATURE_KVM:
+        case VIR_DOMAIN_FEATURE_PVSPINLOCK:
+        case VIR_DOMAIN_FEATURE_CAPABILITIES:
+        case VIR_DOMAIN_FEATURE_PMU:
+        case VIR_DOMAIN_FEATURE_VMPORT:
+        case VIR_DOMAIN_FEATURE_GIC:
+        case VIR_DOMAIN_FEATURE_SMM:
+        case VIR_DOMAIN_FEATURE_IOAPIC:
+        case VIR_DOMAIN_FEATURE_HPT:
+        case VIR_DOMAIN_FEATURE_VMCOREINFO:
+            if (src->features[i] != dst->features[i]) {
+                virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                               _("State of feature '%s' differs: "
+                                 "source: '%s', destination: '%s'"),
+                               featureName,
+                               virTristateSwitchTypeToString(src->features[i]),
+                               virTristateSwitchTypeToString(dst->features[i]));
+                return false;
+            }
+            break;
+
+        case VIR_DOMAIN_FEATURE_LAST:
+            break;
         }
     }