2010-06-30 13:24:57

by Jan Beulich

[permalink] [raw]
Subject: [PATCH] x86-64: fix unwind annotations in syscall stubs

With the return address removed from the stack, these should really
refer to their caller's register state.

Signed-off-by: Jan Beulich <[email protected]>

--- linux-2.6.35-rc3/arch/x86/kernel/entry_64.S
+++ 2.6.35-rc3-x86_64-unwind-annotations/arch/x86/kernel/entry_64.S
@@ -714,9 +714,8 @@ END(ptregscall_common)

ENTRY(stub_execve)
CFI_STARTPROC
- popq %r11
- CFI_ADJUST_CFA_OFFSET -8
- CFI_REGISTER rip, r11
+ addq $8, %rsp
+ PARTIAL_FRAME 0
SAVE_REST
FIXUP_TOP_OF_STACK %r11
movq %rsp, %rcx
@@ -735,7 +734,7 @@ END(stub_execve)
ENTRY(stub_rt_sigreturn)
CFI_STARTPROC
addq $8, %rsp
- CFI_ADJUST_CFA_OFFSET -8
+ PARTIAL_FRAME 0
SAVE_REST
movq %rsp,%rdi
FIXUP_TOP_OF_STACK %r11