From 3faf8d10ffaf971041a3e0ae00e600c1651302aa Mon Sep 17 00:00:00 2001 From: babbleberry Date: Tue, 6 Feb 2024 11:56:03 +0000 Subject: [PATCH] Fixed a bug in the interrupt handler in part13 to avoid an infinite loop --- part13-interrupts/kernel/irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/part13-interrupts/kernel/irq.c b/part13-interrupts/kernel/irq.c index 3ab82d1..6e83ca3 100644 --- a/part13-interrupts/kernel/irq.c +++ b/part13-interrupts/kernel/irq.c @@ -11,7 +11,7 @@ void disable_interrupt_controller() { void handle_irq() { unsigned int irq = REGS_IRQ->irq0_pending_0; - while(irq) { + while(irq & (SYS_TIMER_IRQ_1 | SYS_TIMER_IRQ_3)) { if (irq & SYS_TIMER_IRQ_1) { irq &= ~SYS_TIMER_IRQ_1;