diff --git a/Kernel/Arch/i386/CPU.cpp b/Kernel/Arch/i386/CPU.cpp index df0c4f30af..76bf8ace1c 100644 --- a/Kernel/Arch/i386/CPU.cpp +++ b/Kernel/Arch/i386/CPU.cpp @@ -437,15 +437,16 @@ void flush_idt() asm("lidt %0" ::"m"(s_idtr)); } -/* If an 8259 gets cranky, it'll generate a spurious IRQ7. - * ATM I don't have a clear grasp on when/why this happens, - * so I ignore them and assume it makes no difference. - */ - extern "C" void irq7_handler(); asm( - ".globl irq7_handler \n" - "irq7_handler: \n" + ".globl irq7_handler\n" + "irq7_handler:\n" + " iret\n"); + +extern "C" void irq15_handler(); +asm( + ".globl irq15_handler\n" + "irq15_handler:\n" " iret\n"); void idt_init() @@ -475,6 +476,7 @@ void idt_init() register_interrupt_handler(0x10, _exception16); register_interrupt_handler(0x57, irq7_handler); + register_interrupt_handler(0x5f, irq15_handler); for (u8 i = 0; i < 16; ++i) { s_irq_handler[i] = nullptr;