[PATCH 1/4] ftrace: Protect direct_functions in ftrace_find_rec_direct

Leon Hwang <[email protected]> Thu, 30 Jul 2026 23:04:08 +0800
Newsgroups org.kernel.vger.linux-trace-kernel,org.kernel.vger.linux-kernel,org.kernel.vger.stable
Message-ID <[email protected]>
Fix accessing the __rcu pointer direct_functions with RCU protection.

Cc: [email protected]
Fixes: d05cb470663a ("ftrace: Fix modification of direct_function hash while in use")
Suggested-by: Steven Rostedt <[email protected]>
Signed-off-by: Leon Hwang <[email protected]>
---
 kernel/trace/ftrace.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 6c47a94f5924..c5d1d0d42ccc 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -2645,7 +2645,8 @@ unsigned long ftrace_find_rec_direct(unsigned long ip)
 {
 	struct ftrace_func_entry *entry;
 
-	entry = __ftrace_lookup_ip(direct_functions, ip);
+	guard(preempt_notrace)();
+	entry = __ftrace_lookup_ip(rcu_dereference_sched(direct_functions), ip);
 	if (!entry)
 		return 0;
 
-- 
2.55.0