]> git.itanic.dy.fi Git - linux-stable/commitdiff
x86/ftrace: Remove ftrace_epilogue()
authorPeter Zijlstra <peterz@infradead.org>
Thu, 15 Sep 2022 11:11:35 +0000 (13:11 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Thu, 20 Oct 2022 15:10:27 +0000 (17:10 +0200)
Remove the weird jumps to RET and simply use RET.

This then promotes ftrace_stub() to a real function; which becomes
important for kcfi.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20220915111148.719080593@infradead.org
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
arch/x86/kernel/ftrace_64.S

index dfeb227de5617c6d55ad6ace1f321b7ac87b6a70..a90c55a6b481729b1b1cad452118a12955dc7d5e 100644 (file)
@@ -172,20 +172,14 @@ SYM_INNER_LABEL(ftrace_call, SYM_L_GLOBAL)
         */
 SYM_INNER_LABEL(ftrace_caller_end, SYM_L_GLOBAL)
        ANNOTATE_NOENDBR
-
-       jmp ftrace_epilogue
+       RET
 SYM_FUNC_END(ftrace_caller);
 STACK_FRAME_NON_STANDARD_FP(ftrace_caller)
 
-SYM_FUNC_START(ftrace_epilogue)
-/*
- * This is weak to keep gas from relaxing the jumps.
- */
-SYM_INNER_LABEL_ALIGN(ftrace_stub, SYM_L_WEAK)
+SYM_FUNC_START(ftrace_stub)
        UNWIND_HINT_FUNC
-       ENDBR
        RET
-SYM_FUNC_END(ftrace_epilogue)
+SYM_FUNC_END(ftrace_stub)
 
 SYM_FUNC_START(ftrace_regs_caller)
        /* Save the current flags before any operations that can change them */
@@ -262,14 +256,11 @@ SYM_INNER_LABEL(ftrace_regs_caller_jmp, SYM_L_GLOBAL)
        popfq
 
        /*
-        * As this jmp to ftrace_epilogue can be a short jump
-        * it must not be copied into the trampoline.
-        * The trampoline will add the code to jump
-        * to the return.
+        * The trampoline will add the return.
         */
 SYM_INNER_LABEL(ftrace_regs_caller_end, SYM_L_GLOBAL)
        ANNOTATE_NOENDBR
-       jmp ftrace_epilogue
+       RET
 
        /* Swap the flags with orig_rax */
 1:     movq MCOUNT_REG_SIZE(%rsp), %rdi
@@ -280,7 +271,7 @@ SYM_INNER_LABEL(ftrace_regs_caller_end, SYM_L_GLOBAL)
        /* Restore flags */
        popfq
        UNWIND_HINT_FUNC
-       jmp     ftrace_epilogue
+       RET
 
 SYM_FUNC_END(ftrace_regs_caller)
 STACK_FRAME_NON_STANDARD_FP(ftrace_regs_caller)