Re: x86: Spurious vectors not handled robustly

From: Thomas Gleixner
Date: Mon Jun 24 2019 - 06:37:35 EST


On Mon, 24 Jun 2019, Jan Kiszka wrote:
> On 24.06.19 12:09, Thomas Gleixner wrote:
> > If it is a vectored one it _IS_ acked.
> >
> > inc_irq_stat(irq_spurious_count);
> >
> > /* see sw-dev-man vol 3, chapter 7.4.13.5 */
> > pr_info("spurious APIC interrupt through vector %02x on CPU#%d, "
> > "should never happen.\n", vector, smp_processor_id());
> >
> > and the vector through which that comes is printed correctly, unless
> > regs->orig_ax is hosed.
>
> ...which is exactly the case: Since that commit, all unused vectors share the
> same entry point, spurious_interrupt, see idt_setup_apic_and_irq_gates(). And
> that entry point sets orig_ax to ~0xff.

Bah. Of course I did not look at that ...

/me goes back to stare at the code.

Thanks,

tglx