From fec8763c210031f65005e1a2455fe707790ef26b Mon Sep 17 00:00:00 2001 From: Liav A Date: Thu, 9 Apr 2020 20:48:57 +0300 Subject: [PATCH] Interrupts: Make the MultiProcessorParser functional again --- Kernel/ACPI/MultiProcessorParser.cpp | 6 +++--- Kernel/Interrupts/InterruptManagement.cpp | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Kernel/ACPI/MultiProcessorParser.cpp b/Kernel/ACPI/MultiProcessorParser.cpp index 05157a77df..7da9b65c33 100644 --- a/Kernel/ACPI/MultiProcessorParser.cpp +++ b/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 MultiProcessorParser::get_pci_bus_ids() MultiProcessorParser& MultiProcessorParser::the() { - ASSERT(!MultiProcessorParser::is_initialized()); + ASSERT(is_initialized()); return *s_parser; } diff --git a/Kernel/Interrupts/InterruptManagement.cpp b/Kernel/Interrupts/InterruptManagement.cpp index 85bd0d489c..6d4adefb8c 100644 --- a/Kernel/Interrupts/InterruptManagement.cpp +++ b/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(); }