aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Noonan <snoonan@amazon.com>2013-09-12 11:27:27 +0200
committerJan Beulich <jbeulich@suse.com>2013-09-12 11:27:27 +0200
commite7c05bbb21b4747693b5fc04a1da4aa6f44446fc (patch)
treecee70c34e520687a05f424a6a8154d1a7a4ee0d8
parentb8656cdad7edec38affc87b6782f9cb0c442746c (diff)
downloadxen-e7c05bbb21b4747693b5fc04a1da4aa6f44446fc.tar.gz
xen-e7c05bbb21b4747693b5fc04a1da4aa6f44446fc.tar.bz2
xen-e7c05bbb21b4747693b5fc04a1da4aa6f44446fc.zip
xend: handle extended PCI configuration space when saving state
Newer PCI standards (e.g., PCI-X 2.0 and PCIe) introduce extended configuration space which is larger than 256 bytes. This patch uses stat() to determine the amount of space used to correctly save all of the PCI configuration space. Resets handled by the xen-pciback driver don't have this problem, as that code correctly handles saving extended configuration space. Signed-off-by: Steven Noonan <snoonan@amazon.com> Reviewed-by: Matt Wilson <msw@amazon.com> [msw: adjusted commit message] Signed-off-by: Matt Wilson <msw@amazon.com> master commit: 1893cf77992cc0ce9d827a8d345437fa2494b540 master date: 2013-09-03 16:36:47 +0100
-rw-r--r--tools/python/xen/util/pci.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/python/xen/util/pci.py b/tools/python/xen/util/pci.py
index 98bea1aead..307144ce31 100644
--- a/tools/python/xen/util/pci.py
+++ b/tools/python/xen/util/pci.py
@@ -521,8 +521,9 @@ def save_pci_conf_space(devs_string):
pci_path = sysfs_mnt + SYSFS_PCI_DEVS_PATH + '/' + pci_str + \
SYSFS_PCI_DEV_CONFIG_PATH
fd = os.open(pci_path, os.O_RDONLY)
+ size = os.fstat(fd).st_size
configs = []
- for i in range(0, 256, 4):
+ for i in range(0, size, 4):
configs = configs + [os.read(fd,4)]
os.close(fd)
pci_list = pci_list + [pci_path]