]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: Fix formatting of <sev> element in domain capabilities XML
authorErik Skultety <eskultet@redhat.com>
Thu, 14 Jun 2018 12:18:30 +0000 (14:18 +0200)
committerErik Skultety <eskultet@redhat.com>
Fri, 15 Jun 2018 08:49:13 +0000 (10:49 +0200)
We only formatted the <sev> element when QEMU supported the feature when
in fact we should always format the element to make clear that libvirt
knows about the feature and the fact whether it is or isn't supported
depends on QEMU version, in other words if QEMU doesn't support the
feature we're going to format the following into the domain capabilities
XML:

<sev supported='no'/>

This patch also adjusts the RNG schema accordingly in order to reflect
the proposed change.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
27 files changed:
docs/schemas/domaincaps.rng
src/conf/domain_capabilities.c
tests/domaincapsschemadata/basic.xml
tests/domaincapsschemadata/bhyve_basic.x86_64.xml
tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml
tests/domaincapsschemadata/bhyve_uefi.x86_64.xml
tests/domaincapsschemadata/full.xml
tests/domaincapsschemadata/libxl-xenfv-usb.xml
tests/domaincapsschemadata/libxl-xenfv.xml
tests/domaincapsschemadata/libxl-xenpv-usb.xml
tests/domaincapsschemadata/libxl-xenpv.xml
tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml
tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml
tests/domaincapsschemadata/qemu_2.12.0.s390x.xml
tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml
tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml
tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml
tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml
tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml
tests/domaincapsschemadata/qemu_2.7.0.s390x.xml
tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml
tests/domaincapsschemadata/qemu_2.8.0.s390x.xml
tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml
tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml
tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml
tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml

index e25201fc68c97f85b28d880975351c06c333b007..7d80693d38def8cd1fcd19b83963a5fcf079bacf 100644 (file)
         <ref name='gic'/>
         <ref name='vmcoreinfo'/>
         <ref name='vmgenid'/>
-        <optional>
-          <ref name='sev'/>
-        </optional>
+        <ref name='sev'/>
       </interleave>
     </element>
   </define>
 
   <define name='sev'>
     <element name='sev'>
-      <element name='cbitpos'>
-        <data type='unsignedInt'/>
-      </element>
-      <element name='reducedPhysBits'>
-        <data type='unsignedInt'/>
-      </element>
+      <ref name='supported'/>
+      <optional>
+        <element name='cbitpos'>
+          <data type='unsignedInt'/>
+        </element>
+        <element name='reducedPhysBits'>
+          <data type='unsignedInt'/>
+        </element>
+      </optional>
     </element>
   </define>
 
index e5d943af5059bbdab2a7c2202aefb0903ccd9dc8..d3d108ab42f88b0bf8c7a91f2e47cb722dc077c7 100644 (file)
@@ -559,16 +559,20 @@ static void
 virDomainCapsFeatureSEVFormat(virBufferPtr buf,
                               virSEVCapabilityPtr const sev)
 {
-    if (!sev)
-        return;
 
-    virBufferAddLit(buf, "<sev supported='yes'>\n");
-    virBufferAdjustIndent(buf, 2);
-    virBufferAsprintf(buf, "<cbitpos>%d</cbitpos>\n", sev->cbitpos);
-    virBufferAsprintf(buf, "<reducedPhysBits>%d</reducedPhysBits>\n",
+    if (!sev) {
+        virBufferAddLit(buf, "<sev supported='no'/>\n");
+    } else {
+        virBufferAddLit(buf, "<sev supported='yes'>\n");
+        virBufferAdjustIndent(buf, 2);
+        virBufferAsprintf(buf, "<cbitpos>%d</cbitpos>\n", sev->cbitpos);
+        virBufferAsprintf(buf, "<reducedPhysBits>%d</reducedPhysBits>\n",
                           sev->reduced_phys_bits);
-    virBufferAdjustIndent(buf, -2);
-    virBufferAddLit(buf, "</sev>\n");
+        virBufferAdjustIndent(buf, -2);
+        virBufferAddLit(buf, "</sev>\n");
+    }
+
+    return;
 }
 
 
index acc4a4d7d70e695917eda03e600139b4915ef005..7bf4e56ae014bf78311d052b1fc2061ae5ee2609 100644 (file)
@@ -20,5 +20,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index c4e84770559629425882cefd8f9e94bf441c152f..d6ecf061d05a0177c1ba179c18bd4ec5dc9fa2b3 100644 (file)
@@ -30,5 +30,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 0ba46b2c5ed8c60e841e0a9beed88b70fac5aaa3..1a5aad7bce013699fe9ac7d60b76365edad6a166 100644 (file)
@@ -47,5 +47,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 80318c78d813556c4822d158302bb0f537376d4f..b624fd0799f256162bcbc2a5aff9971252357e66 100644 (file)
@@ -39,5 +39,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 986688630303199c1fb2399af52c3c8c6832a4e1..d3faf38da023c597fbbf6dec6077df309353028e 100644 (file)
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 6b56419ee1e6f1a899942d9d287529e293035d5b..29fe1f9aa30081ae504b290a66c8b36c7d79f68b 100644 (file)
@@ -73,5 +73,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 65dbc5aaf4c4c371df04a469c34153587035842a..5f318d5c4b70bb8f3de7a594898a0334ec5a3aee 100644 (file)
@@ -72,5 +72,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 92e54bae075d8b2fe6e268feb2bcdc63e0acaecf..b9f3ca736bb7c4251c800c5d9ecda827db764525 100644 (file)
@@ -63,5 +63,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 741fd2d9d68871601868f36c1ba383c8738c7848..6fc65f67b788172bb933a11e8ab4a0b365a2c35e 100644 (file)
@@ -62,5 +62,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 236d0de8f1eab65452f38d81276ab111665e9a15..3d731339193162ba112ee27b3874044cd22a0ae5 100644 (file)
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 4d7056162e01a91efeb0a4be8861dda82c1b0495..56e403c4c7f900189031d3f22737324a9f56004b 100644 (file)
     </gic>
     <vmcoreinfo supported='yes'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 8d7fd64f6531c2d9af30ad385d65888860818f86..d0b9c3fdef5639dd7a3218db9cab50014f786a6a 100644 (file)
@@ -80,5 +80,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index dac3df28da20c88ba7654f3816597731b6c48f60..8742dce530ae90f38d67eaf03519d4150fdc61c4 100644 (file)
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index a8e3174dd6c71aef2c071f06cad00c1131f773d8..7a1be4c09334c9bca684bbec5cb97e3cb06d7b79 100644 (file)
     <gic supported='no'/>
     <vmcoreinfo supported='yes'/>
     <genid supported='yes'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 709a14d7fe1f6d143773a7a57d6f5deb1c842076..b3e85de1d326f2be3d5231ad7cb144ca4ae7cf7c 100644 (file)
     </gic>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index a4789a532ca469ac769f41959919a2bc22fadb91..0fcc715940c5bbb0954be0dd14f0625073cfcbbf 100644 (file)
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 79f4a067692b00c9b38b283fe95953d51e407f21..f2dff05ff8f82f605467b253c9ca38c9a3584498 100644 (file)
@@ -84,5 +84,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 55edf1b2214c2d57d8d8c84af9d18f577957ae68..c6d9fd8b3721172ddbb59cde41e13dca66a15fb3 100644 (file)
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index d18e05e53cf65aef601e99eca745ceb2945e9659..0c48bd6c75f436e462bb031fe9fc54e1ff364508 100644 (file)
@@ -77,5 +77,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 825f1f97f87baa15f0fad492b470aa245c0b0be3..1cb843d5d1887e16bae5118f849262d7561e3b2a 100644 (file)
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index d524bb8970d1806a6635b8501a1401744ae20b7c..7293d89ae784fe3b3ea8f2b6224c9723c7357906 100644 (file)
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index a0d9e11522464a145afd64ae371d7937c41475e4..8391603a3b38f4067124cb7f8e689b5dad561269 100644 (file)
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 254ee010490a638042177b778ecd94825d923536..c341de3ce26778fdfa9217c26fd38908bb097f47 100644 (file)
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='yes'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 478133693f59be503bfeafef8c0ae3651f750357..4336e65dc8f72ec2aba8560b7baa6f3d40a26263 100644 (file)
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='yes'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
index 058e624ed340bd150e34c4aa9f76fc6b9f0235c8..8e842b89fdc64b2bc4dc67cfd51c4ea54d04973c 100644 (file)
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='yes'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>