Bläddra i källkod

Interrupts: Make the MultiProcessorParser functional again

Liav A 5 år sedan
förälder
incheckning
fec8763c21
2 ändrade filer med 4 tillägg och 5 borttagningar
  1. 3 3
      Kernel/ACPI/MultiProcessorParser.cpp
  2. 1 2
      Kernel/Interrupts/InterruptManagement.cpp

+ 3 - 3
Kernel/ACPI/MultiProcessorParser.cpp

@@ -40,8 +40,8 @@ bool MultiProcessorParser::is_initialized()
 
 void MultiProcessorParser::initialize()
 {
-    if (!MultiProcessorParser::is_initialized())
-        s_parser = new MultiProcessorParser;
+    ASSERT(!is_initialized());
+    s_parser = new MultiProcessorParser;
 }
 
 MultiProcessorParser::MultiProcessorParser()
@@ -181,7 +181,7 @@ Vector<unsigned> MultiProcessorParser::get_pci_bus_ids()
 
 MultiProcessorParser& MultiProcessorParser::the()
 {
-    ASSERT(!MultiProcessorParser::is_initialized());
+    ASSERT(is_initialized());
     return *s_parser;
 }
 

+ 1 - 2
Kernel/Interrupts/InterruptManagement.cpp

@@ -193,6 +193,7 @@ void InterruptManagement::switch_to_ioapic_mode()
     APIC::init();
     APIC::enable_bsp();
     MultiProcessorParser::initialize();
+    locate_pci_interrupt_overrides();
 }
 
 void InterruptManagement::locate_apic_data()
@@ -234,8 +235,6 @@ void InterruptManagement::locate_apic_data()
 }
 void InterruptManagement::locate_pci_interrupt_overrides()
 {
-    // FIXME: calling the MultiProcessorParser causes a pagefault.
-    ASSERT_NOT_REACHED();
     m_pci_interrupt_overrides = MultiProcessorParser::the().get_pci_interrupt_redirections();
 }