Oops in pci_fixup_i450nx

From: Chuck Lever (cel@monkey.org)
Date: Wed Jan 12 2000 - 16:59:32 EST


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