x86-64: Fix unwind annotations in recent NMI changes
While in one case a plain annotation is necessary, in the other case the stack adjustment can simply be folded into the immediately preceding RESTORE_ALL, thus getting the correct annotation for free. Signed-off-by: Jan Beulich <jbeulich@suse.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Alexander van Heukelum <heukelum@mailshack.com> Link: http://lkml.kernel.org/r/51010C9302000078000B9045@nat28.tlf.novell.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
021ef050fc
commit
444723dccc
@ -1781,6 +1781,7 @@ first_nmi:
|
|||||||
* Leave room for the "copied" frame
|
* Leave room for the "copied" frame
|
||||||
*/
|
*/
|
||||||
subq $(5*8), %rsp
|
subq $(5*8), %rsp
|
||||||
|
CFI_ADJUST_CFA_OFFSET 5*8
|
||||||
|
|
||||||
/* Copy the stack frame to the Saved frame */
|
/* Copy the stack frame to the Saved frame */
|
||||||
.rept 5
|
.rept 5
|
||||||
@ -1863,10 +1864,8 @@ end_repeat_nmi:
|
|||||||
nmi_swapgs:
|
nmi_swapgs:
|
||||||
SWAPGS_UNSAFE_STACK
|
SWAPGS_UNSAFE_STACK
|
||||||
nmi_restore:
|
nmi_restore:
|
||||||
RESTORE_ALL 8
|
/* Pop the extra iret frame at once */
|
||||||
|
RESTORE_ALL 6*8
|
||||||
/* Pop the extra iret frame */
|
|
||||||
addq $(5*8), %rsp
|
|
||||||
|
|
||||||
/* Clear the NMI executing stack variable */
|
/* Clear the NMI executing stack variable */
|
||||||
movq $0, 5*8(%rsp)
|
movq $0, 5*8(%rsp)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user