Kernel: Correct Spurious Interrupt handlers' controller model() method

We don't return blindly the IRQ controller's model(), if the Spurious
IRQ handler is installed in IOAPIC environment, it's misleading to
return "IOAPIC" string since IOAPIC doesn't really handle Spurious
IRQs, therefore we return a "" string.
This commit is contained in:
Liav A 2020-03-08 02:35:57 +02:00 committed by Andreas Kling
parent 4cc96a7aa9
commit 666990fbcb
Notes: sideshowbarker 2024-07-19 08:09:25 +09:00
2 changed files with 7 additions and 1 deletions

View File

@ -81,4 +81,10 @@ void SpuriousInterruptHandler::disable_interrupt_vector()
m_responsible_irq_controller->disable(interrupt_number());
}
const char* SpuriousInterruptHandler::controller() const
{
if (m_responsible_irq_controller->type() == IRQControllerType::i82093AA)
return "";
return m_responsible_irq_controller->model();
}
}

View File

@ -52,7 +52,7 @@ public:
virtual HandlerType type() const override { return HandlerType::SpuriousInterruptHandler; }
virtual const char* purpose() const override { return "Spurious Interrupt Handler"; }
virtual const char* controller() const override { return m_responsible_irq_controller->model(); }
virtual const char* controller() const override;
private:
void enable_interrupt_vector();