x86/entry: Make NMI use IDTENTRY_RAW
authorThomas Gleixner <tglx@linutronix.de>
Fri, 12 Jun 2020 12:02:27 +0000 (14:02 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 12 Jun 2020 12:15:48 +0000 (14:15 +0200)
commit71ed49d8fb33023f242419a77ecb1141c029cac4
treea743da99e822b09ab03ba67561603c1077fac484
parent15a416e8aaa758b5534f64a3972dae05275bc225
x86/entry: Make NMI use IDTENTRY_RAW

For no reason other than beginning brainmelt, IDTENTRY_NMI was mapped to
IDTENTRY_IST.

This is not a problem on 64bit because the IST default entry point maps to
IDTENTRY_RAW which does not any entry handling. The surplus function
declaration for the noist C entry point is unused and as there is no ASM
code emitted for NMI this went unnoticed.

On 32bit IDTENTRY_IST maps to a regular IDTENTRY which does the normal
entry handling. That is clearly the wrong thing to do for NMI.

Map it to IDTENTRY_RAW to unbreak it. The IDTENTRY_NMI mapping needs to
stay to avoid emitting ASM code.

Fixes: 6271fef00b34 ("x86/entry: Convert NMI to IDTENTRY_NMI")
Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Debugged-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/CA+G9fYvF3cyrY+-iw_SZtpN-i2qA2BruHg4M=QYECU2-dNdsMw@mail.gmail.com
arch/x86/include/asm/idtentry.h
arch/x86/kernel/nmi.c