ChangeSet 1.1587.12.91, 2004/05/11 14:59:36-07:00, arjanv@redhat.com [PATCH] PCI crash with pciless box or pci=off workaround on Vaio's From: Alan Cox Reasoning - Earlier in boot if we find a PCI bus we set raw_pci_ops to the function table to use for PCI accesses. - When we enter this function we now check if we have such a method - If not then we know it will otherwise crash because the call sequence through the code goes pci_irq_init pirq_peer_trick pci_scan_bus_parented which always leads down into the device scan and a pci config access via raw_pci_ops The moment the scan searches for a device it has to crash as it has no access methods. - The other case which does nothing but pci_fixup_irqs is a no-op with no PCI devices - THUS any situation that is changed by the raw_pci_ops check was previously an oops case anyway or did nothing anyway. Tested with pci=off and without arch/i386/pci/irq.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -Nru a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c --- a/arch/i386/pci/irq.c Mon May 17 16:56:18 2004 +++ b/arch/i386/pci/irq.c Mon May 17 16:56:18 2004 @@ -901,7 +901,7 @@ { DBG("PCI: IRQ init\n"); - if (pcibios_enable_irq) + if (pcibios_enable_irq || raw_pci_ops == NULL) return 0; pirq_table = pirq_find_routing_table();