From d60778fcdc62b71c22152d3eface6a7a603016e4 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Mon, 5 May 2008 10:12:44 +0100 Subject: [PATCH] Calculation of MSI-X table size needs to be masked. Signed-off-by: Espen Skoglund --- tools/python/xen/util/pci.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/python/xen/util/pci.py b/tools/python/xen/util/pci.py index ad46eb3c0b..d70a998b25 100644 --- a/tools/python/xen/util/pci.py +++ b/tools/python/xen/util/pci.py @@ -30,6 +30,7 @@ PCI_STATUS_CAP_MASK = 0x10 PCI_STATUS_OFFSET = 0x6 PCI_CAP_OFFSET = 0x34 MSIX_BIR_MASK = 0x7 +MSIX_SIZE_MASK = 0x3ff #Calculate PAGE_SHIFT: number of bits to shift an address to get the page number PAGE_SIZE = resource.getpagesize() @@ -120,8 +121,9 @@ class PciDevice: message_cont_lo = ord(conf_file.read(1)) message_cont_hi = ord(conf_file.read(1)) self.msix=1 - self.msix_entries = message_cont_lo + \ - message_cont_hi << 8 + self.msix_entries = (message_cont_lo + \ + message_cont_hi << 8) \ + & MSIX_SIZE_MASK t_off=conf_file.read(4) p_off=conf_file.read(4) self.table_offset=ord(t_off[0]) | (ord(t_off[1])<<8) | \ -- 2.39.5