diff --git a/kernel-src/arch/x86-64/apic.c b/kernel-src/arch/x86-64/apic.c index be8e0c8d..5ebb77f3 100644 --- a/kernel-src/arch/x86-64/apic.c +++ b/kernel-src/arch/x86-64/apic.c @@ -227,7 +227,6 @@ void arch_apic_initap() { writelapic(APIC_LVT_LINT0 + 0x10 * current->lint, (nmiisr->id & 0xff) | LVT_DELIVERY_NMI | (current->flags << 12)); } - _cpu()->ipl = IPL_NORMAL; interrupt_set(true); } diff --git a/kernel-src/arch/x86-64/idt.c b/kernel-src/arch/x86-64/idt.c index d343d6bc..6c88b12a 100644 --- a/kernel-src/arch/x86-64/idt.c +++ b/kernel-src/arch/x86-64/idt.c @@ -5,6 +5,7 @@ #include #include #include +#include typedef struct { uint16_t size; @@ -79,6 +80,8 @@ void arch_idt_reload() { // make sure to reserve the first 32 isrs for exceptions with a dummy panic isr for (int i = 0; i < 32; ++i) interrupt_register(i, exceptisr, NULL, IPL_MAX); + + _cpu()->ipl = IPL_NORMAL; } void arch_interrupt_disable() {