diff options
| -rw-r--r-- | arch/x86/kernel/entry_32.S | 7 | ||||
| -rw-r--r-- | arch/x86/kernel/entry_64.S | 6 | 
2 files changed, 5 insertions, 8 deletions
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S index c097e7d607c6..7d52e9da5e0c 100644 --- a/arch/x86/kernel/entry_32.S +++ b/arch/x86/kernel/entry_32.S  | |||
| @@ -1185,17 +1185,14 @@ END(ftrace_graph_caller) | |||
| 1185 | 1185 | ||
| 1186 | .globl return_to_handler | 1186 | .globl return_to_handler | 
| 1187 | return_to_handler: | 1187 | return_to_handler: | 
| 1188 | pushl $0 | ||
| 1189 | pushl %eax | 1188 | pushl %eax | 
| 1190 | pushl %ecx | ||
| 1191 | pushl %edx | 1189 | pushl %edx | 
| 1192 | movl %ebp, %eax | 1190 | movl %ebp, %eax | 
| 1193 | call ftrace_return_to_handler | 1191 | call ftrace_return_to_handler | 
| 1194 | movl %eax, 0xc(%esp) | 1192 | movl %eax, %ecx | 
| 1195 | popl %edx | 1193 | popl %edx | 
| 1196 | popl %ecx | ||
| 1197 | popl %eax | 1194 | popl %eax | 
| 1198 | ret | 1195 | jmp *%ecx | 
| 1199 | #endif | 1196 | #endif | 
| 1200 | 1197 | ||
| 1201 | .section .rodata,"a" | 1198 | .section .rodata,"a" | 
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S index b5c061f8f358..bd5bbddddf91 100644 --- a/arch/x86/kernel/entry_64.S +++ b/arch/x86/kernel/entry_64.S  | |||
| @@ -155,11 +155,11 @@ GLOBAL(return_to_handler) | |||
| 155 | 155 | ||
| 156 | call ftrace_return_to_handler | 156 | call ftrace_return_to_handler | 
| 157 | 157 | ||
| 158 | movq %rax, 16(%rsp) | 158 | movq %rax, %rdi | 
| 159 | movq 8(%rsp), %rdx | 159 | movq 8(%rsp), %rdx | 
| 160 | movq (%rsp), %rax | 160 | movq (%rsp), %rax | 
| 161 | addq $16, %rsp | 161 | addq $24, %rsp | 
| 162 | retq | 162 | jmp *%rdi | 
| 163 | #endif | 163 | #endif | 
| 164 | 164 | ||
| 165 | 165 | ||
