[haiku-commits] r42795 - haiku/trunk/src/system/kernel/arch/x86

  • From: mmlr@xxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 2 Oct 2011 23:25:16 +0200 (CEST)

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;


Other related posts:

  • » [haiku-commits] r42795 - haiku/trunk/src/system/kernel/arch/x86 - mmlr