]> xenbits.xensource.com Git - libvirt.git/commitdiff
cpu-data.py: Allow for more than child in feature nodes
authorTim Wiederhake <twiederh@redhat.com>
Mon, 17 Oct 2022 09:55:08 +0000 (11:55 +0200)
committerTim Wiederhake <twiederh@redhat.com>
Tue, 8 Nov 2022 20:44:16 +0000 (21:44 +0100)
cpu-data.py assumes that all "feature" nodes have exactly one child.
This assumption will no longer be true when the cpumap includes alias-
names for features.

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
tests/cputestdata/cpu-data.py

index 0200db7a78fca7d0ff2391cf6f59ad2e24a4e20a..498e07b2f7c1c1bde2d1a8119ca79630df7f0739 100755 (executable)
@@ -445,12 +445,15 @@ def parseMap():
 
     cpuMap = dict()
     for f in xml.etree.ElementTree.parse(path).getroot().iter("feature"):
-        if f[0].tag not in ("cpuid", "msr"):
+        data = f.find("cpuid")
+        if data is None:
+            data = f.find("msr")
+        if data is None:
             continue
 
-        feature = {"type": f[0].tag}
-        for reg in _KEYS[f[0].tag] + _REGS[f[0].tag]:
-            feature[reg] = int(f[0].attrib.get(reg, "0"), 0)
+        feature = {"type": data.tag}
+        for reg in _KEYS[data.tag] + _REGS[data.tag]:
+            feature[reg] = int(data.attrib.get(reg, "0"), 0)
         cpuMap[f.attrib["name"]] = feature
     return cpuMap