Messages in this thread Patch in this message |  | | Date | Mon, 18 Sep 2000 09:41:03 +0200 | From | Rasmus Andersen <> | Subject | Re: Oops on boot with both 2.2.17 and 2.4.0t8p6 |
| |
On Sun, Sep 17, 2000 at 10:53:55PM -0300, Marcelo Tosatti wrote: > > AFAIK most distros use CONFIG_PCI_GOANY, which causes the kernel to try to > detect the PCI devices directly, and in case this fails, it tries to > detect via BIOS.
I thought so too from reading the help regarding this option, but the code seems to (in case of CONFIG_GOANY) to check through the bios, check directly and pick the direct mapping (if not NULL) and otherwise pick the BIOS mapping (if not NULL) (this is from arch/i386/kernel/ pci-pc.c). This is not what I expected from reading the help text.
Would it be more correct for the code to check directly first (if con- figured so and not excluded at boot time etc) and then only check through BIOS if the direct mapping failed?
Example patch (probably fubar'ed):
--- pci-pc.c.org Mon Sep 18 09:14:48 2000 +++ pci-pc.c Mon Sep 18 09:16:01 2000 @@ -962,15 +962,15 @@ struct pci_ops *bios = NULL; struct pci_ops *dir = NULL; +#ifdef CONFIG_PCI_DIRECT + if (pci_probe & (PCI_PROBE_CONF1 | PCI_PROBE_CONF2)) + dir = pci_check_direct(); +#endif #ifdef CONFIG_PCI_BIOS - if ((pci_probe & PCI_PROBE_BIOS) && ((bios = pci_find_bios()))) { + if ((pci_probe & PCI_PROBE_BIOS) && (!dir) && ((bios = pci_find_bios()))) { pci_probe |= PCI_BIOS_SORT; pci_bios_present = 1; } -#endif -#ifdef CONFIG_PCI_DIRECT - if (pci_probe & (PCI_PROBE_CONF1 | PCI_PROBE_CONF2)) - dir = pci_check_direct(); #endif if (dir) pci_root_ops = dir;
Comments?
Regards, Rasmus - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |