[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y06d5X39EmKVamLN@hirez.programming.kicks-ass.net>
Date: Tue, 18 Oct 2022 14:36:53 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Steven Rostedt <rostedt@...dmis.org>, x86@...nel.org,
linux-kernel@...r.kernel.org, Mark Rutland <mark.rutland@....com>
Cc: Kees Cook <keescook@...omium.org>,
Sami Tolvanen <samitolvanen@...gle.com>
Subject: Re: [PATCH] ftrace,kcfi: Separate ftrace_stub() and
ftrace_stub_graph()
On Tue, Oct 18, 2022 at 02:35:16PM +0200, Peter Zijlstra wrote:
>
> Different function signatures means they needs to be different
> functions; otherwise CFI gets upset.
>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
> ---
>
> Notable; this patch depends on eac828eaef29 ("x86/ftrace: Remove
> ftrace_epilogue()") which can be cleanly picked on top of -rc1.
>
> Since kCFI is upstream this should go into some /urgent tree.
Combined (eac828eaef29 + this patch) generate a conflict against
tip/x86/core. Resolution looks like:
diff --cc arch/x86/kernel/ftrace_64.S
index 2a4be92fd144,6a7e6d666a12..000000000000
--- a/arch/x86/kernel/ftrace_64.S
+++ b/arch/x86/kernel/ftrace_64.S
@@@ -4,7 -4,7 +4,8 @@@
*/
#include <linux/linkage.h>
+#include <linux/cfi_types.h>
+ #include <asm/asm-offsets.h>
#include <asm/ptrace.h>
#include <asm/ftrace.h>
#include <asm/export.h>
@@@ -130,14 -130,6 +131,16 @@@
.endm
+SYM_TYPED_FUNC_START(ftrace_stub)
++ CALL_DEPTH_ACCOUNT
+ RET
+SYM_FUNC_END(ftrace_stub)
+
+SYM_TYPED_FUNC_START(ftrace_stub_graph)
++ CALL_DEPTH_ACCOUNT
+ RET
+SYM_FUNC_END(ftrace_stub_graph)
+
#ifdef CONFIG_DYNAMIC_FTRACE
SYM_FUNC_START(__fentry__)
@@@ -284,8 -305,13 +311,10 @@@ STACK_FRAME_NON_STANDARD_FP(ftrace_regs
#else /* ! CONFIG_DYNAMIC_FTRACE */
SYM_FUNC_START(__fentry__)
+ CALL_DEPTH_ACCOUNT
+
cmpq $ftrace_stub, ftrace_trace_function
jnz trace
-
-SYM_INNER_LABEL(ftrace_stub, SYM_L_GLOBAL)
- ENDBR
RET
trace:
Powered by blists - more mailing lists