diff options
author | Jan Beulich <JBeulich@suse.com> | 2014-09-24 08:41:30 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2014-10-08 12:31:45 +0200 |
commit | f74954f01ec9bb2004bcc24f247d1f26f1063ad2 (patch) | |
tree | 962c344a8150e37026efd31d09af342e8af56a33 | |
parent | 5f1d919a8ca15f450c749227bc5e2e18f3cbfdb4 (diff) | |
download | op-kernel-dev-f74954f01ec9bb2004bcc24f247d1f26f1063ad2.zip op-kernel-dev-f74954f01ec9bb2004bcc24f247d1f26f1063ad2.tar.gz |
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>
-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 e9acf5f..e28cdaf 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 |