aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/python/xen/util/pci.py17
-rw-r--r--tools/python/xen/xend/XendNode.py2
-rw-r--r--tools/python/xen/xm/main.py3
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: