Messages in this thread Patch in this message | | | From | Chris Frantz <> | Subject | [PATCH] PCI bus detection bug | Date | Thu, 18 Feb 1999 13:45:05 -0600 (CST) |
| |
Hello,
The PCI code in Linux-2.2 doesn't seem to find peer busses very well, specifically when they are not numbered sequentially. I've seen this problem on a few different Compaq systems with hot-plug pci. The fix is rather trivial:
--- linux/arch/i386/kernel/bios32.c.orig Thu Feb 18 00:45:56 1999 +++ linux/arch/i386/kernel/bios32.c Thu Feb 18 00:46:11 1999 @@ -985,8 +985,6 @@ l == PCI_CLASS_BRIDGE_HOST) cnt++; } - if (cnt-- <= 0) - break; if (found) { printk("PCI: Discovered primary peer bus %02x\n", n); b = kmalloc(sizeof(*b), GFP_KERNEL); I'm a bit curious about this code. Although comments at the top of pcibios_fixup_peer_bridges seem to suggest that a lot of BIOSes will number busses using the first free value they can find (probably resulting in busses being numbered sequentially), the comments also seem to indicate that this behavior is not required. Yet this code seems to enforce sequentially numbered peer busses...
I am by no means a PCI expert, so perhaps someone could enlighten me?
Regards, --Chris
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |