xend: Fix the detection of the upmost bridge in the python function find_parent().
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 10 Oct 2008 09:03:28 +0000 (10:03 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 10 Oct 2008 09:03:28 +0000 (10:03 +0100)
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
tools/python/xen/util/pci.py

index 56e2c9e633c234da72f0c4b630086fdb1062d9aa..ef9bb4fda65f08870da6c2bf85f5bae7bf663f1d 100644 (file)
@@ -400,12 +400,8 @@ class PciDevice:
             lst = target.split('/')
             parent = lst[len(lst)-2]
             if parent[0:3] == 'pci':
-                parent = parent[3:]
-                lst = parent.split(':')
-                dom = int(lst[0], 16)
-                bus = int(lst[1], 16)
-                dev = 0
-                func = 0
+                # We have reached the upmost one.
+                return None
             else:
                 lst = parent.split(':')
                 dom = int(lst[0], 16)
@@ -424,7 +420,10 @@ class PciDevice:
         (dom, b, d, f) = self.find_parent()
         dev = dev_parent = PciDevice(dom, b, d, f)
         while dev_parent.dev_type != DEV_TYPE_PCIe_BRIDGE:
-            (dom, b, d, f) = dev_parent.find_parent()
+            parent = dev_parent.find_parent()
+            if parent is None:
+                break
+            (dom, b, d, f) = parent
             dev = dev_parent
             dev_parent = PciDevice(dom, b, d, f)
         return dev