x86/asm/entry/64: Fold the 'test_in_nmi' macro into its only user
No code changes. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com> Acked-by: Borislav Petkov <bp@suse.de> Cc: Alexei Starovoitov <ast@plumgrid.com> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Borislav Petkov <bp@alien8.de> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Kees Cook <keescook@chromium.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Will Drewry <wad@chromium.org> Link: http://lkml.kernel.org/r/1427899858-7165-1-git-send-email-dvlasenk@redhat.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
a6de5a21fb
commit
0784b36448
|
@ -1355,19 +1355,7 @@ ENTRY(error_exit)
|
|||
CFI_ENDPROC
|
||||
END(error_exit)
|
||||
|
||||
/*
|
||||
* Test if a given stack is an NMI stack or not.
|
||||
*/
|
||||
.macro test_in_nmi reg stack nmi_ret normal_ret
|
||||
cmpq %\reg, \stack
|
||||
ja \normal_ret
|
||||
subq $EXCEPTION_STKSZ, %\reg
|
||||
cmpq %\reg, \stack
|
||||
jb \normal_ret
|
||||
jmp \nmi_ret
|
||||
.endm
|
||||
|
||||
/* runs on exception stack */
|
||||
/* Runs on exception stack */
|
||||
ENTRY(nmi)
|
||||
INTR_FRAME
|
||||
PARAVIRT_ADJUST_EXCEPTION_FRAME
|
||||
|
@ -1428,8 +1416,18 @@ ENTRY(nmi)
|
|||
* We check the variable because the first NMI could be in a
|
||||
* breakpoint routine using a breakpoint stack.
|
||||
*/
|
||||
lea 6*8(%rsp), %rdx
|
||||
test_in_nmi rdx, 4*8(%rsp), nested_nmi, first_nmi
|
||||
lea 6*8(%rsp), %rdx
|
||||
/* Compare the NMI stack (rdx) with the stack we came from (4*8(%rsp)) */
|
||||
cmpq %rdx, 4*8(%rsp)
|
||||
/* If the stack pointer is above the NMI stack, this is a normal NMI */
|
||||
ja first_nmi
|
||||
subq $EXCEPTION_STKSZ, %rdx
|
||||
cmpq %rdx, 4*8(%rsp)
|
||||
/* If it is below the NMI stack, it is a normal NMI */
|
||||
jb first_nmi
|
||||
/* Ah, it is within the NMI stack, treat it as nested */
|
||||
jmp nested_nmi
|
||||
|
||||
CFI_REMEMBER_STATE
|
||||
|
||||
nested_nmi:
|
||||
|
|
Loading…
Reference in New Issue