[libvirt] [PATCH] conf: Fix XML formatting of RNG device info

Peter Krempa pkrempa at redhat.com
Thu Dec 5 17:36:30 UTC 2013


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

When outputting the XML for the RNG device, the code didn't format the
PCI address info. Additionally the schema wasn't expecting the info
although it was being parsed and used internally. Fix those mistakes and
add test for the PCI info section.
---
 docs/schemas/domaincommon.rng                               | 6 ++++++
 src/conf/domain_conf.c                                      | 5 +++++
 tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.args | 2 +-
 tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.xml  | 1 +
 4 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 80848d2..38c6801 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -3956,6 +3956,12 @@
         <optional>
           <ref name="rng-rate"/>
         </optional>
+        <optional>
+          <ref name="alias"/>
+        </optional>
+        <optional>
+          <ref name="address"/>
+        </optional>
       </interleave>
     </element>
   </define>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 65bd9b1..0268847 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -15832,6 +15832,11 @@ virDomainRNGDefFormat(virBufferPtr buf,
         break;
     }

+    if (virDomainDeviceInfoIsSet(&def->info, flags)) {
+        if (virDomainDeviceInfoFormat(buf, &def->info, flags) < 0)
+            return -1;
+    }
+
     virBufferAddLit(buf, "    </rng>\n");

     return 0;
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.args b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.args
index 01e9f89..4ae6257 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.args
@@ -4,4 +4,4 @@ LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
 -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
 -object rng-random,id=rng0 \
--device virtio-rng-pci,rng=rng0,bus=pci.0,addr=0x4
+-device virtio-rng-pci,rng=rng0,bus=pci.0,addr=0x7
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.xml b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.xml
index 0852dea..0a7bf61 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-default.xml
@@ -18,6 +18,7 @@
     <memballoon model='virtio'/>
     <rng model='virtio'>
       <backend model='random'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
     </rng>
   </devices>
 </domain>
-- 
1.8.4.3




More information about the libvir-list mailing list