]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virPCIDeviceAddressParseXML: Use virXMLNodeGetSubelement to find 'zpci'
authorPeter Krempa <pkrempa@redhat.com>
Thu, 1 Dec 2022 10:02:05 +0000 (11:02 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 6 Feb 2023 08:14:00 +0000 (09:14 +0100)
Use the helper designed to find the subelement. A slight semantic
difference after this patch is that the first <zpci> element will be
considered instead of the last, but only one is expected in a valid XML.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
src/conf/device_conf.c

index 762efe5f0be16a13b5ba8390c910e97f22a8f442..a116e39c75441c315a1a1aac0196c55882ec7631 100644 (file)
@@ -199,8 +199,7 @@ int
 virPCIDeviceAddressParseXML(xmlNodePtr node,
                             virPCIDeviceAddress *addr)
 {
-    xmlNodePtr cur;
-    xmlNodePtr zpci = NULL;
+    xmlNodePtr zpci;
 
     memset(addr, 0, sizeof(*addr));
 
@@ -227,18 +226,11 @@ virPCIDeviceAddressParseXML(xmlNodePtr node,
     if (!virPCIDeviceAddressIsEmpty(addr) && !virPCIDeviceAddressIsValid(addr, true))
         return -1;
 
-    cur = node->children;
-    while (cur) {
-        if (cur->type == XML_ELEMENT_NODE &&
-            virXMLNodeNameEqual(cur, "zpci")) {
-            zpci = cur;
-        }
-        cur = cur->next;
+    if ((zpci = virXMLNodeGetSubelement(node, "zpci"))) {
+        if (virZPCIDeviceAddressParseXML(zpci, addr) < 0)
+            return -1;
     }
 
-    if (zpci && virZPCIDeviceAddressParseXML(zpci, addr) < 0)
-        return -1;
-
     return 0;
 }