diff options
author | Liav A <liavalb@gmail.com> | 2020-03-06 15:51:32 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-03-24 16:15:33 +0100 |
commit | 7c859efa85f365a63e91c783f0bed90d69dca8fd (patch) | |
tree | 64534ab8e2d34820c26077357b5a6dbbe0819d81 /Kernel/Interrupts | |
parent | f7b207c7ae92c756c0243dd5c093e5f48b865dba (diff) | |
download | serenity-7c859efa85f365a63e91c783f0bed90d69dca8fd.zip |
Kernel: Change the Spurious Interrupt Handler offset in the APIC
The Spurious Interrupt Handler number that is written to
APIC_REG_SIV is correct now.
Diffstat (limited to 'Kernel/Interrupts')
-rw-r--r-- | Kernel/Interrupts/APIC.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Kernel/Interrupts/APIC.cpp b/Kernel/Interrupts/APIC.cpp index 67c25db878..0bc34d3507 100644 --- a/Kernel/Interrupts/APIC.cpp +++ b/Kernel/Interrupts/APIC.cpp @@ -159,6 +159,7 @@ void eoi() bool init() { + // FIXME: Use the ACPI MADT table if (!MSR::have()) return false; @@ -189,7 +190,7 @@ void enable(u32 cpu) // dummy read, apparently to avoid a bug in old CPUs. read_register(APIC_REG_SIV); // set spurious interrupt vector - write_register(APIC_REG_SIV, IRQ_APIC_SPURIOUS | 0x100); + write_register(APIC_REG_SIV, (IRQ_APIC_SPURIOUS + IRQ_VECTOR_BASE) | 0x100); // local destination mode (flat mode) write_register(APIC_REG_DF, 0xf0000000); |