浏览代码

Kernel: Return real handler purpose when registered to spurious handler

If we registered a real interrupt handler to a spurious one, we should
return its purpose instead of the spurious purpose string.
Liav A 4 年之前
父节点
当前提交
663dea4a60
共有 2 个文件被更改,包括 8 次插入1 次删除
  1. 7 0
      Kernel/Interrupts/SpuriousInterruptHandler.cpp
  2. 1 1
      Kernel/Interrupts/SpuriousInterruptHandler.h

+ 7 - 0
Kernel/Interrupts/SpuriousInterruptHandler.cpp

@@ -57,6 +57,13 @@ bool SpuriousInterruptHandler::eoi()
     return false;
 }
 
+const char* SpuriousInterruptHandler::purpose() const
+{
+    if (!m_real_handler)
+        return "Spurious Interrupt Handler";
+    return m_real_handler->purpose();
+}
+
 SpuriousInterruptHandler::SpuriousInterruptHandler(u8 irq)
     : GenericInterruptHandler(irq)
     , m_responsible_irq_controller(InterruptManagement::the().get_responsible_irq_controller(irq))

+ 1 - 1
Kernel/Interrupts/SpuriousInterruptHandler.h

@@ -50,7 +50,7 @@ public:
     virtual bool is_sharing_with_others() const override { return false; }
 
     virtual HandlerType type() const override { return HandlerType::SpuriousInterruptHandler; }
-    virtual const char* purpose() const override { return "Spurious Interrupt Handler"; }
+    virtual const char* purpose() const override;
     virtual const char* controller() const override;
 
 private: