summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2010-09-08 01:38:05 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2010-09-08 01:38:05 +0200
commit878aa97a21d7a5074cbf87bac6950b8b2b3b2c47 (patch)
treeec906f0b14427263b8c0820faa3498d64c99d89a
parentdad50b78b6a7507c460dc349acfbda78e91b3ee3 (diff)
Fix non-contiguous PCI functions
* linux/src/drivers/pci/pci.c (scan_bus): Do not set `is_multi' to 0 when a hole is encountered. Detect 0000:ffff and ffff:0000 vendor ID as holes too.
-rw-r--r--linux/src/drivers/pci/pci.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/linux/src/drivers/pci/pci.c b/linux/src/drivers/pci/pci.c
index bb79cc4..cf7dd80 100644
--- a/linux/src/drivers/pci/pci.c
+++ b/linux/src/drivers/pci/pci.c
@@ -1121,10 +1121,8 @@ static unsigned int scan_bus(struct pci_bus *bus, unsigned long *mem_startp)
pcibios_read_config_dword(bus->number, devfn, PCI_VENDOR_ID, &l);
/* some broken boards return 0 if a slot is empty: */
- if (l == 0xffffffff || l == 0x00000000) {
- is_multi = 0;
+ if (l == 0xffffffff || l == 0x00000000 || l == 0x0000ffff || l == 0xffff0000)
continue;
- }
dev = pci_malloc(sizeof(*dev), mem_startp);
dev->bus = bus;