diff --git a/kernel/hal/x86_64/intr.c b/kernel/hal/x86_64/intr.c index b5ad3bf..227294e 100644 --- a/kernel/hal/x86_64/intr.c +++ b/kernel/hal/x86_64/intr.c @@ -215,6 +215,7 @@ void intr_handleintr(IntrStackFrame *frame) { break; case INTR_IRQBASE+1: int32_t c = ps2kb_intr(); + intr_eoi(frame->trapnum - INTR_IRQBASE); if (c >= 0) { uint8_t *bytes = (uint8_t *)&c; spinlock_acquire(&PS2KB_BUF.spinlock); @@ -223,7 +224,6 @@ void intr_handleintr(IntrStackFrame *frame) { } spinlock_release(&PS2KB_BUF.spinlock); } - intr_eoi(frame->trapnum - INTR_IRQBASE); break; } } else if (frame->trapnum == 0x80) {