diff options
-rw-r--r-- | arch/x86/kernel/ftrace.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c index 18828aee8781..f20f49f7d244 100644 --- a/arch/x86/kernel/ftrace.c +++ b/arch/x86/kernel/ftrace.c | |||
@@ -471,13 +471,15 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr) | |||
471 | "1: " _ASM_MOV " (%[parent_old]), %[old]\n" | 471 | "1: " _ASM_MOV " (%[parent_old]), %[old]\n" |
472 | "2: " _ASM_MOV " %[return_hooker], (%[parent_replaced])\n" | 472 | "2: " _ASM_MOV " %[return_hooker], (%[parent_replaced])\n" |
473 | " movl $0, %[faulted]\n" | 473 | " movl $0, %[faulted]\n" |
474 | "3:\n" | ||
474 | 475 | ||
475 | ".section .fixup, \"ax\"\n" | 476 | ".section .fixup, \"ax\"\n" |
476 | "3: movl $1, %[faulted]\n" | 477 | "4: movl $1, %[faulted]\n" |
478 | " jmp 3b\n" | ||
477 | ".previous\n" | 479 | ".previous\n" |
478 | 480 | ||
479 | _ASM_EXTABLE(1b, 3b) | 481 | _ASM_EXTABLE(1b, 4b) |
480 | _ASM_EXTABLE(2b, 3b) | 482 | _ASM_EXTABLE(2b, 4b) |
481 | 483 | ||
482 | : [parent_replaced] "=r" (parent), [old] "=r" (old), | 484 | : [parent_replaced] "=r" (parent), [old] "=r" (old), |
483 | [faulted] "=r" (faulted) | 485 | [faulted] "=r" (faulted) |