On Wed, 23 Oct 2019, Josh Poimboeuf wrote: > On Wed, Oct 23, 2019 at 02:27:08PM +0200, Thomas Gleixner wrote: > > That function returns immediately after conditionally reenabling interrupts which > > is more than pointless and requires the ASM code to disable interrupts again. > > > > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > > --- > > arch/x86/kernel/traps.c | 1 - > > 1 file changed, 1 deletion(-) > > > > --- a/arch/x86/kernel/traps.c > > +++ b/arch/x86/kernel/traps.c > > @@ -871,7 +871,6 @@ do_simd_coprocessor_error(struct pt_regs > > dotraplinkage void > > do_spurious_interrupt_bug(struct pt_regs *regs, long error_code) > > { > > - cond_local_irq_enable(regs); > > } > > I think we can just remove this handler altogether. The Intel and AMD > manuals say vector 15 (X86_TRAP_SPURIOUS) is reserved. Right, but this has history. Pentium Pro Erratum: PROBLEM: If the APIC subsystem is configured in mixed mode with Virtual Wire mode implemented through the local APIC, an interrupt vector of 0Fh (Intel reserved encoding) may be generated by the local APIC (Int 15). This vector may be generated upon receipt of a spurious interrupt (an interrupt which is removed before the system receives the INTA sequence) instead of the programmed 8259 spurious interrupt vector. IMPLICATION: The spurious interrupt vector programmed in the 8259 is normally handled by an operating system’s spurious interrupt handler. However, a vector of 0Fh is unknown to some operating systems, which would crash if this erratum occurred. Initially (2.1.) there was a printk() in that handler, which later got ifdeffed out (2.1.54). So I rather keep that thing at least as long as we support PPro :) Even if we ditch that the handler is not really hurting anyone. Thanks, tglx