system is an Intel S450NX with 3 PCI buses; kernel is 2.3.39. on boot,
the PCI initialization code causes a hard Oops trying to dereference a
NULL pointer. the aberrant code is line 881-2 in pci_fixup_i450nx:
if (suba < subb)
pci_scan_bus(suba+1, pci_root_bus->ops, NULL); /* Bus B */
to debug the problem, in arch/i386/kernel/pci-pc.c, i added a line:
printk("PCI: Probing PCI hardware\n");
pci_root_bus = pci_scan_bus(0, ops, NULL);
>>> printk("PCI: pci_root_bus is 0x%p\n", pci_root_bus);
and commented out the failing code in pci_fixup_i450nx. the console
output (with debugging enabled) looks like this:
PCI: PCI BIOS revision 2.10 entry at 0xfdb33
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: IDE base address fixup for 00:0c.1
PCI: Searching for i450NX host bridges on ontroller
i450NX PXB 0: 00/00/01 /* oops usually occurs here */
i450NX PXB 1: 80/7f/7e
PCI: Scanning for ghost devices on bus 0
PCI: pci_root_bus is 0xdffe7680 /* here's where pci_root_bus is set */
PCI: IRQ fixup
this shows that pci_fixup_i450nx is trying to use pci_root_bus before it
is initialized in pcibios_init.
- Chuck Lever
-- corporate: <chuckl@netscape.com> personal: <chucklever@netscape.net> or <cel@monkey.org>The Linux Scalability project: http://www.citi.umich.edu/projects/linux-scalability/
- 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/
This archive was generated by hypermail 2b29 : Sat Jan 15 2000 - 21:00:21 EST