BarryServer : Git

All the code for all my projects
// BarryServer : Git / Nucleus / commit / 08afe80d1ca157b9cddb31ee48ab0e6e1823f559 / kernel / idt.c

// Related

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 */