Kernel: Stop idling after handling an IRQ

If we receive an IRQ while the idle task is running, prevent it from
re-halting the CPU after the IRQ handler returns.

Instead have the idle task yield to the scheduler, so we can see if
the IRQ has unblocked something.
This commit is contained in:
Andreas Kling 2019-09-14 19:44:22 +02:00
commit e1481dcb42
Notes: sideshowbarker 2024-07-19 12:06:40 +09:00
4 changed files with 28 additions and 5 deletions

View file

@ -490,8 +490,10 @@ void handle_irq()
}
}
if (s_irq_handler[irq])
if (s_irq_handler[irq]) {
s_irq_handler[irq]->handle_irq();
Scheduler::stop_idling();
}
PIC::eoi(irq);
}