From 663dea4a609faa50d484ec3d106015bf7da53bff Mon Sep 17 00:00:00 2001 From: Liav A Date: Tue, 23 Mar 2021 19:51:15 +0200 Subject: [PATCH] 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. --- Kernel/Interrupts/SpuriousInterruptHandler.cpp | 7 +++++++ Kernel/Interrupts/SpuriousInterruptHandler.h | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Kernel/Interrupts/SpuriousInterruptHandler.cpp b/Kernel/Interrupts/SpuriousInterruptHandler.cpp index e276f9f65e..aa16d934d4 100644 --- a/Kernel/Interrupts/SpuriousInterruptHandler.cpp +++ b/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)) diff --git a/Kernel/Interrupts/SpuriousInterruptHandler.h b/Kernel/Interrupts/SpuriousInterruptHandler.h index 7631149416..cedc80f421 100644 --- a/Kernel/Interrupts/SpuriousInterruptHandler.h +++ b/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: