[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen master] xend: handle extended PCI configuration space when saving state



commit 1893cf77992cc0ce9d827a8d345437fa2494b540
Author:     Steven Noonan <snoonan@xxxxxxxxxx>
AuthorDate: Fri Aug 30 16:40:42 2013 -0700
Commit:     Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Tue Sep 3 16:36:47 2013 +0100

    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@xxxxxxxxxx>
    Reviewed-by: Matt Wilson <msw@xxxxxxxxxx>
    [msw: adjusted commit message]
    Signed-off-by: Matt Wilson <msw@xxxxxxxxxx>
---
 tools/python/xen/util/pci.py |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/tools/python/xen/util/pci.py b/tools/python/xen/util/pci.py
index 98bea1a..307144c 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]
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.