diff options
author | Jan Beulich <JBeulich@suse.com> | 2014-09-24 03:41:30 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2014-10-08 06:31:45 -0400 |
commit | f74954f01ec9bb2004bcc24f247d1f26f1063ad2 (patch) | |
tree | 962c344a8150e37026efd31d09af342e8af56a33 /arch | |
parent | 5f1d919a8ca15f450c749227bc5e2e18f3cbfdb4 (diff) |
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')
-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 @@ | |||
6 | */ | 6 | */ |
7 | #include <linux/linkage.h> | 7 | #include <linux/linkage.h> |
8 | #include <asm/asm.h> | 8 | #include <asm/asm.h> |
9 | #include <asm/dwarf2.h> | ||
9 | 10 | ||
10 | /* put return address in eax (arg1) */ | 11 | /* put return address in eax (arg1) */ |
11 | .macro THUNK name, func, put_ret_addr_in_eax=0 | 12 | .macro THUNK name, func, put_ret_addr_in_eax=0 |
12 | .globl \name | 13 | .globl \name |
13 | \name: | 14 | \name: |
14 | pushl %eax | 15 | CFI_STARTPROC |
15 | pushl %ecx | 16 | pushl_cfi %eax |
16 | pushl %edx | 17 | CFI_REL_OFFSET eax, 0 |
18 | pushl_cfi %ecx | ||
19 | CFI_REL_OFFSET ecx, 0 | ||
20 | pushl_cfi %edx | ||
21 | CFI_REL_OFFSET edx, 0 | ||
17 | 22 | ||
18 | .if \put_ret_addr_in_eax | 23 | .if \put_ret_addr_in_eax |
19 | /* Place EIP in the arg1 */ | 24 | /* Place EIP in the arg1 */ |
@@ -21,10 +26,14 @@ | |||
21 | .endif | 26 | .endif |
22 | 27 | ||
23 | call \func | 28 | call \func |
24 | popl %edx | 29 | popl_cfi %edx |
25 | popl %ecx | 30 | CFI_RESTORE edx |
26 | popl %eax | 31 | popl_cfi %ecx |
32 | CFI_RESTORE ecx | ||
33 | popl_cfi %eax | ||
34 | CFI_RESTORE eax | ||
27 | ret | 35 | ret |
36 | CFI_ENDPROC | ||
28 | _ASM_NOKPROBE(\name) | 37 | _ASM_NOKPROBE(\name) |
29 | .endm | 38 | .endm |
30 | 39 | ||