mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 02:19:51 +00:00
x86/nmi/64: Make the "NMI executing" variable more consistent
Currently, "NMI executing" is one the first time an outermost NMI hits repeat_nmi and zero thereafter. Change it to be zero each time for consistency. This is intended to help NMI handling fail harder if it's buggy. Signed-off-by: Andy Lutomirski <luto@kernel.org> Reviewed-by: Steven Rostedt <rostedt@goodmis.org> Cc: Borislav Petkov <bp@suse.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
23a781e987
commit
36f1a77b3a
1 changed files with 5 additions and 6 deletions
|
@ -1441,8 +1441,8 @@ first_nmi:
|
|||
/* Restore rdx. */
|
||||
movq (%rsp), %rdx
|
||||
|
||||
/* Set "NMI executing" on the stack. */
|
||||
pushq $1
|
||||
/* Make room for "NMI executing". */
|
||||
pushq $0
|
||||
|
||||
/* Leave room for the "iret" frame */
|
||||
subq $(5*8), %rsp
|
||||
|
@ -1467,11 +1467,10 @@ repeat_nmi:
|
|||
* RSP is pointing to "outermost RIP". gsbase is unknown, but, if
|
||||
* we're repeating an NMI, gsbase has the same value that it had on
|
||||
* the first iteration. paranoid_entry will load the kernel
|
||||
* gsbase if needed before we call do_nmi.
|
||||
*
|
||||
* Set "NMI executing" in case we came back here via IRET.
|
||||
* gsbase if needed before we call do_nmi. "NMI executing"
|
||||
* is zero.
|
||||
*/
|
||||
movq $1, 10*8(%rsp)
|
||||
movq $1, 10*8(%rsp) /* Set "NMI executing". */
|
||||
|
||||
/*
|
||||
* Copy the "outermost" frame to the "iret" frame. NMIs that nest
|
||||
|
|
Loading…
Reference in a new issue