WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] xend: support for older pciutils without

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] xend: support for older pciutils without -vmm option, and improve
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 19 Jun 2009 00:55:33 -0700
Delivery-date: Fri, 19 Jun 2009 00:59:25 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1245149627 -3600
# Node ID 45ca3f3c3f98118efa6ec207b094c4e61fbee79d
# Parent  d96cf4c974d58a82cbaee72820ae3ea637a5ebdb
xend: support for older pciutils without -vmm option, and improve
error handling in get_info_from_lspci().

Signed-off-by: Zhigang Wang <zhigang.x.wang@xxxxxxxxxx>
---
 tools/python/xen/util/pci.py |   31 ++++++++++++++++++-------------
 1 files changed, 18 insertions(+), 13 deletions(-)

diff -r d96cf4c974d5 -r 45ca3f3c3f98 tools/python/xen/util/pci.py
--- a/tools/python/xen/util/pci.py      Tue Jun 16 11:47:09 2009 +0100
+++ b/tools/python/xen/util/pci.py      Tue Jun 16 11:53:47 2009 +0100
@@ -233,11 +233,16 @@ def _create_lspci_info():
     for paragraph in os.popen(LSPCI_CMD + ' -vmm').read().split('\n\n'):
         device_name = None
         device_info = {}
+        # FIXME: workaround for pciutils without the -mm option.
+        # see: git://git.kernel.org/pub/scm/utils/pciutils/pciutils.git
+        # commit: 3fd6b4d2e2fda814047664ffc67448ac782a8089
+        first_device = True
         for line in paragraph.split('\n'):
             try:
                 (opt, value) = line.split(':\t')
-                if opt == 'Slot':
+                if opt == 'Slot' or (opt == 'Device' and first_device):
                     device_name = PCI_DEV_FORMAT_STR % parse_pci_name(value)
+                    first_device = False
                 else:
                     device_info[opt] = value
             except:
@@ -980,18 +985,18 @@ class PciDevice:
             if lspci_info is None:
                 _create_lspci_info()
 
-            try:
-                device_info = lspci_info[self.name]
-                self.revision = int(device_info['Rev'], 16)
-                self.vendorname = device_info['Vendor']
-                self.devicename = device_info['Device']
-                self.classname = device_info['Class']
-                self.subvendorname = device_info['SVendor']
-                self.subdevicename = device_info['SDevice']
-            except KeyError:
-                pass
-
-            return True
+            device_info = lspci_info.get(self.name)
+            if device_info:
+                try:
+                    self.revision = int(device_info.get('Rev', '0'), 16)
+                except ValueError:
+                    pass
+                self.vendorname = device_info.get('Vendor', '')
+                self.devicename = device_info.get('Device', '')
+                self.classname = device_info.get('Class', '')
+                self.subvendorname = device_info.get('SVendor', '')
+                self.subdevicename = device_info.get('SDevice', '')
+                return True
         finally:
             lspci_info_lock.release()
 

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] xend: support for older pciutils without -vmm option, and improve, Xen patchbot-unstable <=