Selaa lähdekoodia

Kernel: Remove the enabled concept of IRQ handlers

An IRQ handler should always be ready to respond to any IRQ.
We must remember that hardware can generate IRQs without any interaction
from our code at all. Ignoring IRQs in such cases is obviously not the
right thing to do.
Liav A 4 vuotta sitten
vanhempi
commit
ab87d42200

+ 0 - 3
Kernel/Interrupts/GenericInterruptHandler.h

@@ -48,8 +48,6 @@ public:
 
 
     u8 interrupt_number() const { return m_interrupt_number; }
     u8 interrupt_number() const { return m_interrupt_number; }
 
 
-    bool is_enabled() const { return m_enabled; }
-
     size_t get_invoking_count() const { return m_invoking_count; }
     size_t get_invoking_count() const { return m_invoking_count; }
 
 
     virtual size_t sharing_devices_count() const = 0;
     virtual size_t sharing_devices_count() const = 0;
@@ -69,7 +67,6 @@ protected:
 
 
 private:
 private:
     size_t m_invoking_count { 0 };
     size_t m_invoking_count { 0 };
-    bool m_enabled { false };
     u8 m_interrupt_number { 0 };
     u8 m_interrupt_number { 0 };
     bool m_disable_remap { false };
     bool m_disable_remap { false };
 };
 };

+ 2 - 5
Kernel/Interrupts/SharedIRQHandler.cpp

@@ -98,11 +98,8 @@ void SharedIRQHandler::handle_interrupt(const RegisterState& regs)
         dbg() << "Going for Interrupt Handling @ " << i << ", Shared Interrupt " << interrupt_number();
         dbg() << "Going for Interrupt Handling @ " << i << ", Shared Interrupt " << interrupt_number();
 #endif
 #endif
         ASSERT(handler != nullptr);
         ASSERT(handler != nullptr);
-        if (handler->is_enabled()) {
-            handler->increment_invoking_counter();
-            handler->handle_interrupt(regs);
-        }
-
+        handler->increment_invoking_counter();
+        handler->handle_interrupt(regs);
 #ifdef INTERRUPT_DEBUG
 #ifdef INTERRUPT_DEBUG
         dbg() << "Going for Interrupt Handling @ " << i << ", Shared Interrupt " << interrupt_number() << " - End";
         dbg() << "Going for Interrupt Handling @ " << i << ", Shared Interrupt " << interrupt_number() << " - End";
 #endif
 #endif