diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/python/xen/util/pci.py | 17 | ||||
-rw-r--r-- | tools/python/xen/xend/XendNode.py | 2 | ||||
-rw-r--r-- | tools/python/xen/xm/main.py | 3 |
3 files changed, 12 insertions, 10 deletions
diff --git a/tools/python/xen/util/pci.py b/tools/python/xen/util/pci.py index e89bf3446f..c5f70eee73 100644 --- a/tools/python/xen/util/pci.py +++ b/tools/python/xen/util/pci.py @@ -517,20 +517,17 @@ def find_all_assignable_devices(): ''' sysfs_mnt = find_sysfs_mnt() pciback_path = sysfs_mnt + SYSFS_PCIBACK_PATH - pci_names = os.popen('ls ' + pciback_path).read() - pci_list = extract_the_exact_pci_names(pci_names) - dev_list = [] - for pci in pci_list: - dev = PciDevice(parse_pci_name(pci)) - dev_list = dev_list + [dev] - pcistub_path = sysfs_mnt + SYSFS_PCISTUB_PATH - pci_names = os.popen('ls ' + pcistub_path).read() - pci_list = extract_the_exact_pci_names(pci_names) + pci_names1 = os.popen('ls %s 2>/dev/null' % pciback_path).read() + pci_names2 = os.popen('ls %s 2>/dev/null' % pcistub_path).read() + if len(pci_names1) + len(pci_names2) == 0 : + return None + pci_list = extract_the_exact_pci_names(pci_names1) + pci_list = pci_list + extract_the_exact_pci_names(pci_names2) + dev_list = [] for pci in pci_list: dev = PciDevice(parse_pci_name(pci)) dev_list = dev_list + [dev] - return dev_list def transform_list(target, src): diff --git a/tools/python/xen/xend/XendNode.py b/tools/python/xen/xend/XendNode.py index 4ee63f6d46..f11cd79532 100644 --- a/tools/python/xen/xend/XendNode.py +++ b/tools/python/xen/xend/XendNode.py @@ -924,6 +924,8 @@ class XendNode: # Each element of dev_list is a PciDevice dev_list = PciUtil.find_all_assignable_devices() + if dev_list is None: + return None # Each element of devs_list is a list of PciDevice devs_list = PciUtil.check_FLR_capability(dev_list) diff --git a/tools/python/xen/xm/main.py b/tools/python/xen/xm/main.py index 4ba6ab8d14..78f50ade78 100644 --- a/tools/python/xen/xm/main.py +++ b/tools/python/xen/xm/main.py @@ -2313,6 +2313,9 @@ def xm_pci_list_assignable_devices(args): arg_check(args, "pci-list-assignable-devices", 0) devs = server.xend.node.pciinfo() + if devs is None: + print "Error: pciback/pci-stub not loaded?" + return fmt_str = "%(domain)04x:%(bus)02x:%(slot)02x.%(func)01x" for x in devs: |