]> xenbits.xensource.com Git - libvirt.git/commitdiff
cpu_conf: Fix default value for CPU match attribute
authorJiri Denemark <jdenemar@redhat.com>
Tue, 12 Nov 2019 14:26:23 +0000 (15:26 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Mon, 25 Nov 2019 14:29:19 +0000 (15:29 +0100)
Commit v0.8.4-66-g95ff6b18ec (9 years ago) changed the default value for
the cpu/@match attribute to 'exact' in a rather complicated way. It did
so only if <model> subelement was present and set -1 otherwise (which is
not expected to ever happen). Thus the following two equivalent XML
elements:

    <cpu mode='host-model'/>

and

    <cpu mode='host-model'>
      <model/>
    </cpu>

would be parsed differently. The former would end up with match == -1
while the latter would have match == 1 ('exact'). This is not a big deal
since the match attribute is ignored for host-model CPUs, but we can
simplify the code and make it a little bit saner anyway.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/cpu_conf.c
src/conf/cpu_conf.h

index 2a1bd7c9b2a0821c32d5c659080a66a53c666189..3641b5ef4c7054ce3e53e4b7b3e97c4200870baf 100644 (file)
@@ -46,8 +46,8 @@ VIR_ENUM_IMPL(virCPUMode,
 
 VIR_ENUM_IMPL(virCPUMatch,
               VIR_CPU_MATCH_LAST,
-              "minimum",
               "exact",
+              "minimum",
               "strict",
 );
 
@@ -388,12 +388,7 @@ virCPUDefParseXML(xmlXPathContextPtr ctxt,
         char *match = virXMLPropString(ctxt->node, "match");
         char *check;
 
-        if (!match) {
-            if (virXPathBoolean("boolean(./model)", ctxt))
-                def->match = VIR_CPU_MATCH_EXACT;
-            else
-                def->match = -1;
-        } else {
+        if (match) {
             def->match = virCPUMatchTypeFromString(match);
             VIR_FREE(match);
 
index e41d47d1aeaeb53888e88f6778569ed0487252b9..96fda3e6b3998d97720393523c0bbecbebf502e2 100644 (file)
@@ -52,8 +52,8 @@ typedef enum {
 VIR_ENUM_DECL(virCPUMode);
 
 typedef enum {
-    VIR_CPU_MATCH_MINIMUM,
     VIR_CPU_MATCH_EXACT,
+    VIR_CPU_MATCH_MINIMUM,
     VIR_CPU_MATCH_STRICT,
 
     VIR_CPU_MATCH_LAST