Kernel: Don't save/restore sse or reschedule on spurious interrupts
I think these should be just fully ignored :D
This commit is contained in:
parent
60ec5d30fd
commit
8634bbb792
|
|
@ -382,16 +382,16 @@ namespace Kernel
|
||||||
asm volatile("cli; 1: hlt; jmp 1b");
|
asm volatile("cli; 1: hlt; jmp 1b");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!InterruptController::get().is_in_service(irq))
|
||||||
|
return;
|
||||||
|
|
||||||
Thread::current().save_sse();
|
Thread::current().save_sse();
|
||||||
|
|
||||||
if (InterruptController::get().is_in_service(irq))
|
InterruptController::get().eoi(irq);
|
||||||
{
|
if (auto* handler = s_interruptables[irq])
|
||||||
InterruptController::get().eoi(irq);
|
handler->handle_irq();
|
||||||
if (auto* handler = s_interruptables[irq])
|
else
|
||||||
handler->handle_irq();
|
dprintln("no handler for irq 0x{2H}", irq);
|
||||||
else
|
|
||||||
dprintln("no handler for irq 0x{2H}", irq);
|
|
||||||
}
|
|
||||||
|
|
||||||
auto& current_thread = Thread::current();
|
auto& current_thread = Thread::current();
|
||||||
if (current_thread.can_add_signal_to_execute())
|
if (current_thread.can_add_signal_to_execute())
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue