diff options
author | Jan Beulich <JBeulich@suse.com> | 2014-09-24 11:41:30 +0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2014-10-08 14:31:45 +0400 |
commit | f74954f01ec9bb2004bcc24f247d1f26f1063ad2 (patch) | |
tree | 962c344a8150e37026efd31d09af342e8af56a33 /arch/x86 | |
parent | 5f1d919a8ca15f450c749227bc5e2e18f3cbfdb4 (diff) | |
download | linux-f74954f01ec9bb2004bcc24f247d1f26f1063ad2.tar.xz |
x86: Unwind-annotate thunk_32.S
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Link: http://lkml.kernel.org/r/542291CA0200007800038085@mail.emea.novell.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/lib/thunk_32.S | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/arch/x86/lib/thunk_32.S b/arch/x86/lib/thunk_32.S index e9acf5f4fc92..e28cdaf5ac2c 100644 --- a/arch/x86/lib/thunk_32.S +++ b/arch/x86/lib/thunk_32.S @@ -6,14 +6,19 @@ */ #include <linux/linkage.h> #include <asm/asm.h> + #include <asm/dwarf2.h> /* put return address in eax (arg1) */ .macro THUNK name, func, put_ret_addr_in_eax=0 .globl \name \name: - pushl %eax - pushl %ecx - pushl %edx + CFI_STARTPROC + pushl_cfi %eax + CFI_REL_OFFSET eax, 0 + pushl_cfi %ecx + CFI_REL_OFFSET ecx, 0 + pushl_cfi %edx + CFI_REL_OFFSET edx, 0 .if \put_ret_addr_in_eax /* Place EIP in the arg1 */ @@ -21,10 +26,14 @@ .endif call \func - popl %edx - popl %ecx - popl %eax + popl_cfi %edx + CFI_RESTORE edx + popl_cfi %ecx + CFI_RESTORE ecx + popl_cfi %eax + CFI_RESTORE eax ret + CFI_ENDPROC _ASM_NOKPROBE(\name) .endm |