From 956a277c82699de93d53444a4c8bf451108b501b Mon Sep 17 00:00:00 2001
From: Tim Wiederhake <twiederh@redhat.com>
Date: Tue, 22 Jun 2021 14:22:48 +0200
Subject: [PATCH] virDomainFeaturesKVMDefParse: Remove tautological "switch"

`feature` is always one of the values listed in the switch,
ensured by `virDomainKVMTypeFromString` above.

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Shaokun Wei <weishaokun@kylinos.cn>
---
 src/conf/domain_conf.c | 32 ++++----------------------------
 1 file changed, 4 insertions(+), 28 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 9073db8541..dca49b6a55 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -20596,8 +20596,6 @@ static int
 virDomainFeaturesKVMDefParse(virDomainDef *def,
                              xmlNodePtr node)
 {
-    g_autofree char *tmp = NULL;
-
     def->features[VIR_DOMAIN_FEATURE_KVM] = VIR_TRISTATE_SWITCH_ON;
 
     if (def->features[VIR_DOMAIN_FEATURE_KVM] == VIR_TRISTATE_SWITCH_ON) {
@@ -20614,33 +20612,11 @@ virDomainFeaturesKVMDefParse(virDomainDef *def,
                 return -1;
             }
 
-            switch ((virDomainKVM) feature) {
-                case VIR_DOMAIN_KVM_HIDDEN:
-                case VIR_DOMAIN_KVM_DEDICATED:
-                    if (!(tmp = virXMLPropString(node, "state"))) {
-                        virReportError(VIR_ERR_XML_ERROR,
-                                       _("missing 'state' attribute for "
-                                         "KVM feature '%s'"),
-                                       node->name);
-                        return -1;
-                    }
-
-                    if ((value = virTristateSwitchTypeFromString(tmp)) < 0) {
-                        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                                       _("invalid value of state argument "
-                                         "for KVM feature '%s'"),
-                                       node->name);
-                        return -1;
-                    }
-
-                    VIR_FREE(tmp);
-                    def->kvm_features[feature] = value;
-                    break;
+            if (virXMLPropTristateSwitch(node, "state", VIR_XML_PROP_REQUIRED,
+                                         &value) < 0)
+                return -1;
 
-                /* coverity[dead_error_begin] */
-                case VIR_DOMAIN_KVM_LAST:
-                    break;
-            }
+            def->kvm_features[feature] = value;
 
             node = xmlNextElementSibling(node);
         }
-- 
2.27.0

