From 878aa97a21d7a5074cbf87bac6950b8b2b3b2c47 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 8 Sep 2010 01:38:05 +0200 Subject: 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. --- linux/src/drivers/pci/pci.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'linux/src/drivers') 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; -- cgit v1.2.3