diff options
author | Damien Zammit <damien@zamaudio.com> | 2021-04-05 15:29:15 +1000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2021-04-05 11:59:56 +0200 |
commit | 417f458488e4802cc3f2658c1b241a5e0053df46 (patch) | |
tree | 62b4ed1c8ca7ee948bebb20595ceffe44f63d0ec /x86_64 | |
parent | 059c0e5970ebc5a56fd8abc458e0b26a5a26dc53 (diff) | |
download | gnumach-417f458488e4802cc3f2658c1b241a5e0053df46.tar.gz gnumach-417f458488e4802cc3f2658c1b241a5e0053df46.tar.bz2 gnumach-417f458488e4802cc3f2658c1b241a5e0053df46.zip |
Don't call EOI on spurious interrupts
Message-Id: <20210405052916.174771-4-damien@zamaudio.com>
Diffstat (limited to 'x86_64')
-rw-r--r-- | x86_64/interrupt.S | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/x86_64/interrupt.S b/x86_64/interrupt.S index 779eae67..0dfda313 100644 --- a/x86_64/interrupt.S +++ b/x86_64/interrupt.S @@ -33,7 +33,7 @@ ENTRY(interrupt) #ifdef APIC cmpl $255,%eax /* was this a spurious intr? */ - je _null_eoi /* if so, null eoi handler */ + je _no_eoi /* if so, just return */ #endif pushq %rax /* save irq number */ call spl7 /* set ipl */ @@ -92,15 +92,12 @@ ENTRY(interrupt) ret #else cmpl $16,%ecx /* was this a low ISA intr? */ - jl _isa_eoi /* no, must be PCI */ - ret /* NB: let irq_acknowledge handle pci EOI */ + jge _no_eoi /* no, must be PCI (let irq_ack handle EOI) */ _isa_eoi: movl %ecx,%edi /* load irq number as 1st arg */ call EXT(ioapic_irq_eoi) /* ioapic irq specific EOI */ call EXT(lapic_eoi) /* lapic broadcast EOI */ - ret -_null_eoi: - call EXT(lapic_eoi) /* lapic broadcast EOI */ +_no_eoi: ret #endif END(interrupt) |