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 | ||
