Author: mmlr Date: 2011-10-02 23:25:15 +0200 (Sun, 02 Oct 2011) New Revision: 42795 Changeset: https://dev.haiku-os.org/changeset/42795 Ticket: https://dev.haiku-os.org/ticket/7971 Modified: haiku/trunk/src/system/kernel/arch/x86/irq_routing_table.cpp Log: Relax ensure_all_functions_matched() to assume no interrupt use when a device has no routing information but wasn't configured by the BIOS either. The function will now only panic if a device that was previously configured would not be so anymore after enabling the IO-APIC. Fixes #7971. Modified: haiku/trunk/src/system/kernel/arch/x86/irq_routing_table.cpp =================================================================== --- haiku/trunk/src/system/kernel/arch/x86/irq_routing_table.cpp 2011-10-01 03:11:21 UTC (rev 42794) +++ haiku/trunk/src/system/kernel/arch/x86/irq_routing_table.cpp 2011-10-02 21:25:15 UTC (rev 42795) @@ -550,6 +550,14 @@ } if (!matched) { + if (pci->read_pci_config(bus, device, function, + PCI_interrupt_line, 1) == 0) { + dprintf("assuming no interrupt use on PCI device" + " %u:%u:%u (bios irq 0, no routing information)\n", + bus, device, function); + continue; + } + panic("unable to find irq routing for PCI %u:%u:%u", bus, device, function); return B_ERROR;