diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-09-08 01:38:05 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-09-08 01:38:05 +0200 |
commit | 878aa97a21d7a5074cbf87bac6950b8b2b3b2c47 (patch) | |
tree | ec906f0b14427263b8c0820faa3498d64c99d89a | |
parent | dad50b78b6a7507c460dc349acfbda78e91b3ee3 (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.c | 4 |
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; |