]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ftrace: Fix softlockup in ftrace_module_enable
authorVladimir Riabchun <ferr.lambarginio@gmail.com>
Fri, 12 Sep 2025 11:28:55 +0000 (13:28 +0200)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Tue, 30 Sep 2025 21:27:58 +0000 (17:27 -0400)
A soft lockup was observed when loading amdgpu module.
If a module has a lot of tracable functions, multiple calls
to kallsyms_lookup can spend too much time in RCU critical
section and with disabled preemption, causing kernel panic.
This is the same issue that was fixed in
commit d0b24b4e91fc ("ftrace: Prevent RCU stall on PREEMPT_VOLUNTARY
kernels") and commit 42ea22e754ba ("ftrace: Add cond_resched() to
ftrace_graph_set_hash()").

Fix it the same way by adding cond_resched() in ftrace_module_enable.

Link: https://lore.kernel.org/aMQD9_lxYmphT-up@vova-pc
Signed-off-by: Vladimir Riabchun <ferr.lambarginio@gmail.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
kernel/trace/ftrace.c

index a69067367c2968fdf454d83813e353c6868174ee..42bd2ba68a821935871f549889fe073ef7ed11ab 100644 (file)
@@ -7535,6 +7535,8 @@ void ftrace_module_enable(struct module *mod)
                if (!within_module(rec->ip, mod))
                        break;
 
+               cond_resched();
+
                /* Weak functions should still be ignored */
                if (!test_for_valid_rec(rec)) {
                        /* Clear all other flags. Should not be enabled anyway */