From 417f458488e4802cc3f2658c1b241a5e0053df46 Mon Sep 17 00:00:00 2001 From: Damien Zammit Date: Mon, 5 Apr 2021 15:29:15 +1000 Subject: Don't call EOI on spurious interrupts Message-Id: <20210405052916.174771-4-damien@zamaudio.com> --- i386/i386at/interrupt.S | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'i386') diff --git a/i386/i386at/interrupt.S b/i386/i386at/interrupt.S index da0eb044..cb314d32 100644 --- a/i386/i386at/interrupt.S +++ b/i386/i386at/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 pushl %eax /* save irq number */ movl %eax,%ecx /* copy irq number */ @@ -87,16 +87,13 @@ 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: pushl %ecx /* push irq number */ call EXT(ioapic_irq_eoi) /* ioapic irq specific EOI */ addl $4,%esp /* pop irq number */ call EXT(lapic_eoi) /* lapic broadcast EOI */ - ret -_null_eoi: - call EXT(lapic_eoi) /* lapic broadcast EOI */ +_no_eoi: ret #endif END(interrupt) -- cgit v1.2.3