]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
cpu_conf: Format vendor_id for host-model CPUs
authorJiri Denemark <jdenemar@redhat.com>
Wed, 19 Feb 2020 12:48:39 +0000 (13:48 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Wed, 19 Feb 2020 14:11:40 +0000 (15:11 +0100)
In commit v5.9.0-400-gaf8e39921a I removed printing model's fallback and
vendor_id attributes when no model is specified. However, vendor_id
makes sense even without a specific CPU model (for host-model CPUs).

https://bugzilla.redhat.com/show_bug.cgi?id=1804549

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/cpu_conf.c
tests/qemuxml2xmloutdata/cpu-host-model-vendor.xml

index 8fca3df874a41d3fe0ea33277f313eae0b900491..07404c6fb0f2f6a20cde497e6ab560ed2d78ef2e 100644 (file)
@@ -791,10 +791,10 @@ virCPUDefFormatBuf(virBufferPtr buf,
         return -1;
     }
 
-    if (formatModel && def->model) {
+    if (formatModel && (def->model || def->vendor_id)) {
         virBufferAddLit(buf, "<model");
 
-        if (def->type == VIR_CPU_TYPE_GUEST) {
+        if (def->type == VIR_CPU_TYPE_GUEST && def->model) {
             const char *fallback;
 
             fallback = virCPUFallbackTypeToString(def->fallback);
@@ -805,11 +805,15 @@ virCPUDefFormatBuf(virBufferPtr buf,
                 return -1;
             }
             virBufferAsprintf(buf, " fallback='%s'", fallback);
-            if (def->vendor_id)
-                virBufferEscapeString(buf, " vendor_id='%s'", def->vendor_id);
         }
 
-        virBufferEscapeString(buf, ">%s</model>\n", def->model);
+        if (def->type == VIR_CPU_TYPE_GUEST)
+            virBufferEscapeString(buf, " vendor_id='%s'", def->vendor_id);
+
+        if (def->model)
+            virBufferEscapeString(buf, ">%s</model>\n", def->model);
+        else
+            virBufferAddLit(buf, "/>\n");
     }
 
     if (formatModel && def->vendor)
index d2447ccd10c6a4f8813f87e8e7c324440c63cbe2..2a7d0246cc03ad285717f9f56a08760257a6ee9e 100644 (file)
@@ -8,7 +8,9 @@
     <type arch='x86_64' machine='pc'>hvm</type>
     <boot dev='network'/>
   </os>
-  <cpu mode='host-model' check='partial'/>
+  <cpu mode='host-model' check='partial'>
+    <model vendor_id='Libvirt QEMU'/>
+  </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
   <on_reboot>restart</on_reboot>