xend: pci: find_parent: should return string rather than int

Using changeset 19783: 61ec78692b13, device assignment can't work:
e.g., in find_the_uppermost_pci_bridge(),
 parent = dev_parent.find_parent()
...
 dev_parent = PciDevice(parent),
we can see parent['domain'] is int and in PciDevice's __init__,
int(dev['domain'], 16) would fail:
TypeError: int() can't convert non-string with explicit base

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
This commit is contained in:
Keir Fraser committed 2009-06-18 10:18:10 +01:00
1 parent fb442e2171
commit b250b06ee4
1 file changed
+4 -4
+4 -4
View File
@@ -547,12 +547,12 @@ class PciDevice:
else:
dev = {}
lst = parent.split(':')
dev['domain'] = int(lst[0], 16)
dev['bus'] = int(lst[1], 16)
dev['domain'] = '%04x' % int(lst[0], 16)
dev['bus'] = '%02x' % int(lst[1], 16)
lst = lst[2]
lst = lst.split('.')
dev['slot'] = int(lst[0], 16)
dev['func'] = int(lst[1], 16)
dev['slot'] = '%02x' % int(lst[0], 16)
dev['func'] = '%x' % int(lst[1], 16)
return dev
except OSError, (errno, strerr):
raise PciDeviceParseError('Can not locate the parent of %s',
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.