Browse Source

[PATCH] x86_64: reliable stack trace support (x86-64 syscall

Adjust the CFA offset for 64- and 32-bit syscall entries so that the five
slots pre-subtracted from the stack pointer do not appear to reside outside
of the current frame.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jan Beulich 19 years ago
parent
commit
dffead4e42
2 changed files with 2 additions and 2 deletions
  1. 1 1
      arch/x86_64/ia32/ia32entry.S
  2. 1 1
      arch/x86_64/kernel/entry.S

+ 1 - 1
arch/x86_64/ia32/ia32entry.S

@@ -179,7 +179,7 @@ ENDPROC(ia32_sysenter_target)
  */ 	
  */ 	
 ENTRY(ia32_cstar_target)
 ENTRY(ia32_cstar_target)
 	CFI_STARTPROC32	simple
 	CFI_STARTPROC32	simple
-	CFI_DEF_CFA	rsp,0
+	CFI_DEF_CFA	rsp,PDA_STACKOFFSET
 	CFI_REGISTER	rip,rcx
 	CFI_REGISTER	rip,rcx
 	/*CFI_REGISTER	rflags,r11*/
 	/*CFI_REGISTER	rflags,r11*/
 	swapgs
 	swapgs

+ 1 - 1
arch/x86_64/kernel/entry.S

@@ -189,7 +189,7 @@ END(ret_from_fork)
 
 
 ENTRY(system_call)
 ENTRY(system_call)
 	CFI_STARTPROC	simple
 	CFI_STARTPROC	simple
-	CFI_DEF_CFA	rsp,0
+	CFI_DEF_CFA	rsp,PDA_STACKOFFSET
 	CFI_REGISTER	rip,rcx
 	CFI_REGISTER	rip,rcx
 	/*CFI_REGISTER	rflags,r11*/
 	/*CFI_REGISTER	rflags,r11*/
 	swapgs
 	swapgs