diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c index 04ddecf4..f4cdc60b 100644 --- a/arch/x86/kernel/irq.c +++ b/arch/x86/kernel/irq.c @@ -275,7 +275,13 @@ void irq_handler(struct state *s) #endif leave_handler: +#if 1 + // add fast lane for the driver task + if (s->int_no >= 32) + scheduler(); +#else // timer interrupt? if ((s->int_no == 32) || (s->int_no == 123)) - scheduler(); // switch to a new task + scheduler(); // switch to a new task +#endif }