From fe761e7412996b12f2c6620a4918714c35c1b1ee Mon Sep 17 00:00:00 2001 From: Liav A Date: Mon, 22 Mar 2021 21:05:39 +0200 Subject: [PATCH] Kernel: Handle real IRQs from line 7 when using the PIC If we have a real IRQ7 to handle, let's make sure the handler knows to check if it really occured for this value and not only for IRQ15. --- Kernel/Interrupts/SpuriousInterruptHandler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kernel/Interrupts/SpuriousInterruptHandler.cpp b/Kernel/Interrupts/SpuriousInterruptHandler.cpp index 08d9df7222..e276f9f65e 100644 --- a/Kernel/Interrupts/SpuriousInterruptHandler.cpp +++ b/Kernel/Interrupts/SpuriousInterruptHandler.cpp @@ -70,7 +70,7 @@ SpuriousInterruptHandler::~SpuriousInterruptHandler() void SpuriousInterruptHandler::handle_interrupt(const RegisterState& state) { // Actually check if IRQ7 or IRQ15 are spurious, and if not, call the real handler to handle the IRQ. - if (m_responsible_irq_controller->get_isr() & (1 << 15)) { + if (m_responsible_irq_controller->get_isr() & (1 << interrupt_number())) { m_real_irq = true; // remember that we had a real IRQ, when EOI later! m_real_handler->increment_invoking_counter(); m_real_handler->handle_interrupt(state);