Nucleus
Barry Object manager and heap in kernel library 08afe80 (3 years, 2 months ago)
diff --git a/kernel/idt.c b/kernel/idt.c
index dc596f4..0f2bdfd 100644
--- a/kernel/idt.c
+++ b/kernel/idt.c
@@ -43,13 +43,8 @@ void
isr_handler(struct InterruptFrame frame)
{
if (!interrupts[frame.intnum] && frame.intnum < 32)
- panic("[CPU#%d] Failed to handle exception %d (%#.8x) @ %#.8x",
- cpu->id, frame.intnum, frame.err, frame.eip);
-
- /* Run registered handler */
- int_handler_t handler = interrupts[frame.intnum];
- if (handler)
- handler(&frame);
+ panic("Failed to handle exception %d (%#.8x) @ %#.8x",
+ frame.intnum, frame.err, frame.eip);
/* Send EOI */
if (frame.intnum >= 40 && frame.intnum < 48)
@@ -60,6 +55,11 @@ isr_handler(struct InterruptFrame frame)
/* Send APIC EOI */
if (apic)
LAPIC(0xB0) = 0;
+
+ /* Run registered handler */
+ int_handler_t handler = interrupts[frame.intnum];
+ if (handler)
+ handler(&frame);
}
/* Register an exception handler */