diff --git a/Kernel/Interrupts/IRQHandler.cpp b/Kernel/Interrupts/IRQHandler.cpp index 4201f65340..a93e140fe6 100644 --- a/Kernel/Interrupts/IRQHandler.cpp +++ b/Kernel/Interrupts/IRQHandler.cpp @@ -36,6 +36,7 @@ IRQHandler::IRQHandler(u8 irq) : GenericInterruptHandler(irq) , m_responsible_irq_controller(InterruptManagement::the().get_responsible_irq_controller(irq)) { + disable_irq(); } IRQHandler::~IRQHandler() @@ -60,10 +61,9 @@ void IRQHandler::enable_irq() #ifdef IRQ_DEBUG dbg() << "Enable IRQ " << interrupt_number(); #endif + m_enabled = true; if (!m_shared_with_others) m_responsible_irq_controller->enable(*this); - else - m_enabled = true; } void IRQHandler::disable_irq() @@ -71,10 +71,9 @@ void IRQHandler::disable_irq() #ifdef IRQ_DEBUG dbg() << "Disable IRQ " << interrupt_number(); #endif + m_enabled = false; if (!m_shared_with_others) m_responsible_irq_controller->disable(*this); - else - m_enabled = false; } void IRQHandler::change_irq_number(u8 irq)