mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 17:59:32 +00:00
x86/traps: Document do_spurious_interrupt_bug()
Add a comment which explains why this empty handler for a reserved vector exists. Requested-by: Josh Poimboeuf <jpoimboe@redhat.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Frederic Weisbecker <frederic@kernel.org> Reviewed-by: Alexandre Chartre <alexandre.chartre@oracle.com> Reviewed-by: Andy Lutomirski <luto@kernel.org> Link: https://lkml.kernel.org/r/20200225220216.624165786@linutronix.de
This commit is contained in:
parent
e039dd8159
commit
d244d0e195
1 changed files with 19 additions and 0 deletions
|
@ -862,6 +862,25 @@ do_simd_coprocessor_error(struct pt_regs *regs, long error_code)
|
|||
dotraplinkage void
|
||||
do_spurious_interrupt_bug(struct pt_regs *regs, long error_code)
|
||||
{
|
||||
/*
|
||||
* This addresses a 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.
|
||||
*
|
||||
* In theory this could be limited to 32bit, but the handler is not
|
||||
* hurting and who knows which other CPUs suffer from this.
|
||||
*/
|
||||
}
|
||||
|
||||
dotraplinkage void
|
||||
|
|
Loading…
Reference in a new issue