[libvirt] [PATCH 2/2] conf: Fix formatting of <sev> element in domain capabilities XML

Erik Skultety eskultet at redhat.com
Thu Jun 14 12:28:03 UTC 2018


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'/>

Signed-off-by: Erik Skultety <eskultet at redhat.com>
---
 src/conf/domain_capabilities.c                       | 20 ++++++++++++--------
 tests/domaincapsschemadata/basic.xml                 |  1 +
 tests/domaincapsschemadata/bhyve_basic.x86_64.xml    |  1 +
 tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml     |  1 +
 tests/domaincapsschemadata/bhyve_uefi.x86_64.xml     |  1 +
 tests/domaincapsschemadata/full.xml                  |  1 +
 tests/domaincapsschemadata/libxl-xenfv-usb.xml       |  1 +
 tests/domaincapsschemadata/libxl-xenfv.xml           |  1 +
 tests/domaincapsschemadata/libxl-xenpv-usb.xml       |  1 +
 tests/domaincapsschemadata/libxl-xenpv.xml           |  1 +
 tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml     |  1 +
 .../qemu_2.12.0-virt.aarch64.xml                     |  1 +
 tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml     |  1 +
 tests/domaincapsschemadata/qemu_2.12.0.s390x.xml     |  1 +
 tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml    |  1 +
 .../domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml |  1 +
 tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml    |  1 +
 tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml      |  1 +
 tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml     |  1 +
 tests/domaincapsschemadata/qemu_2.7.0.s390x.xml      |  1 +
 tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml |  1 +
 tests/domaincapsschemadata/qemu_2.8.0.s390x.xml      |  1 +
 tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml     |  1 +
 tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml |  1 +
 tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml |  1 +
 tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml     |  1 +
 26 files changed, 37 insertions(+), 8 deletions(-)

diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c
index e5d943af50..9041e46622 100644
--- a/src/conf/domain_capabilities.c
+++ b/src/conf/domain_capabilities.c
@@ -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, "<reduced-phys-bits>%d</reduced-phys-bits>\n",
                           sev->reduced_phys_bits);
-    virBufferAdjustIndent(buf, -2);
-    virBufferAddLit(buf, "</sev>\n");
+        virBufferAdjustIndent(buf, -2);
+        virBufferAddLit(buf, "</sev>\n");
+    }
+
+    return;
 }
 
 
diff --git a/tests/domaincapsschemadata/basic.xml b/tests/domaincapsschemadata/basic.xml
index acc4a4d7d7..7bf4e56ae0 100644
--- a/tests/domaincapsschemadata/basic.xml
+++ b/tests/domaincapsschemadata/basic.xml
@@ -20,5 +20,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/bhyve_basic.x86_64.xml b/tests/domaincapsschemadata/bhyve_basic.x86_64.xml
index c4e8477055..d6ecf061d0 100644
--- a/tests/domaincapsschemadata/bhyve_basic.x86_64.xml
+++ b/tests/domaincapsschemadata/bhyve_basic.x86_64.xml
@@ -30,5 +30,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml b/tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml
index 0ba46b2c5e..1a5aad7bce 100644
--- a/tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml
+++ b/tests/domaincapsschemadata/bhyve_fbuf.x86_64.xml
@@ -47,5 +47,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/bhyve_uefi.x86_64.xml b/tests/domaincapsschemadata/bhyve_uefi.x86_64.xml
index 80318c78d8..b624fd0799 100644
--- a/tests/domaincapsschemadata/bhyve_uefi.x86_64.xml
+++ b/tests/domaincapsschemadata/bhyve_uefi.x86_64.xml
@@ -39,5 +39,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/full.xml b/tests/domaincapsschemadata/full.xml
index 9866886303..d3faf38da0 100644
--- a/tests/domaincapsschemadata/full.xml
+++ b/tests/domaincapsschemadata/full.xml
@@ -110,5 +110,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/libxl-xenfv-usb.xml b/tests/domaincapsschemadata/libxl-xenfv-usb.xml
index 6b56419ee1..29fe1f9aa3 100644
--- a/tests/domaincapsschemadata/libxl-xenfv-usb.xml
+++ b/tests/domaincapsschemadata/libxl-xenfv-usb.xml
@@ -73,5 +73,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/libxl-xenfv.xml b/tests/domaincapsschemadata/libxl-xenfv.xml
index 65dbc5aaf4..5f318d5c4b 100644
--- a/tests/domaincapsschemadata/libxl-xenfv.xml
+++ b/tests/domaincapsschemadata/libxl-xenfv.xml
@@ -72,5 +72,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/libxl-xenpv-usb.xml b/tests/domaincapsschemadata/libxl-xenpv-usb.xml
index 92e54bae07..b9f3ca736b 100644
--- a/tests/domaincapsschemadata/libxl-xenpv-usb.xml
+++ b/tests/domaincapsschemadata/libxl-xenpv-usb.xml
@@ -63,5 +63,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/libxl-xenpv.xml b/tests/domaincapsschemadata/libxl-xenpv.xml
index 741fd2d9d6..6fc65f67b7 100644
--- a/tests/domaincapsschemadata/libxl-xenpv.xml
+++ b/tests/domaincapsschemadata/libxl-xenpv.xml
@@ -62,5 +62,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
index 236d0de8f1..3d73133919 100644
--- a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
@@ -111,5 +111,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml
index 4d7056162e..56e403c4c7 100644
--- a/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml
+++ b/tests/domaincapsschemadata/qemu_2.12.0-virt.aarch64.xml
@@ -118,5 +118,6 @@
     </gic>
     <vmcoreinfo supported='yes'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml b/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml
index 8d7fd64f65..d0b9c3fdef 100644
--- a/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml
+++ b/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml
@@ -80,5 +80,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml b/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml
index dac3df28da..8742dce530 100644
--- a/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml
+++ b/tests/domaincapsschemadata/qemu_2.12.0.s390x.xml
@@ -172,5 +172,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml
index a8e3174dd6..7a1be4c093 100644
--- a/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.12.0.x86_64.xml
@@ -142,5 +142,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='yes'/>
     <genid supported='yes'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml
index 709a14d7fe..b3e85de1d3 100644
--- a/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml
+++ b/tests/domaincapsschemadata/qemu_2.6.0-virt.aarch64.xml
@@ -115,5 +115,6 @@
     </gic>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml
index a4789a532c..0fcc715940 100644
--- a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml
+++ b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml
@@ -111,5 +111,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml b/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml
index 79f4a06769..f2dff05ff8 100644
--- a/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml
+++ b/tests/domaincapsschemadata/qemu_2.6.0.ppc64.xml
@@ -84,5 +84,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml
index 55edf1b221..c6d9fd8b37 100644
--- a/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.6.0.x86_64.xml
@@ -116,5 +116,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml b/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml
index d18e05e53c..0c48bd6c75 100644
--- a/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml
+++ b/tests/domaincapsschemadata/qemu_2.7.0.s390x.xml
@@ -77,5 +77,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml b/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml
index 825f1f97f8..1cb843d5d1 100644
--- a/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.8.0-tcg.x86_64.xml
@@ -117,5 +117,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml b/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml
index d524bb8970..7293d89ae7 100644
--- a/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml
+++ b/tests/domaincapsschemadata/qemu_2.8.0.s390x.xml
@@ -158,5 +158,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml
index a0d9e11522..8391603a3b 100644
--- a/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.8.0.x86_64.xml
@@ -117,5 +117,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='no'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml b/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml
index 254ee01049..c341de3ce2 100644
--- a/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.9.0-q35.x86_64.xml
@@ -125,5 +125,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='yes'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml b/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml
index 478133693f..4336e65dc8 100644
--- a/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml
@@ -149,5 +149,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='yes'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml b/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml
index 058e624ed3..8e842b89fd 100644
--- a/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml
+++ b/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml
@@ -126,5 +126,6 @@
     <gic supported='no'/>
     <vmcoreinfo supported='no'/>
     <genid supported='yes'/>
+    <sev supported='no'/>
   </features>
 </domainCapabilities>
-- 
2.14.4




More information about the libvir-list mailing list