On Tue, 16 Mar 2021 12:58:15 -0700 Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> wrote: > From: Alexei Starovoitov <ast@xxxxxxxxxx> > > The following sequence of commands: > register_ftrace_direct(ip, addr1); > modify_ftrace_direct(ip, addr1, addr2); > unregister_ftrace_direct(ip, addr2); > will cause the kernel to warn: > [ 30.179191] WARNING: CPU: 2 PID: 1961 at kernel/trace/ftrace.c:5223 unregister_ftrace_direct+0x130/0x150 > [ 30.180556] CPU: 2 PID: 1961 Comm: test_progs W O 5.12.0-rc2-00378-g86bc10a0a711-dirty #3246 > [ 30.182453] RIP: 0010:unregister_ftrace_direct+0x130/0x150 > > When modify_ftrace_direct() changes the addr from old to new it should update > the addr stored in ftrace_direct_funcs. Otherwise the final > unregister_ftrace_direct() won't find the address and will cause the splat. > > Fixes: 0567d6809182 ("ftrace: Add modify_ftrace_direct()") > Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx> > --- > Reviewed-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx> -- Steve