I used Masami's address which did not work. Sorry about that. Should be ok now.
On Mon, 31 Aug 2020, Miroslav Benes wrote: > Commit fc0ea795f53c ("ftrace: Add symbols for ftrace trampolines") > missed to remove ops from new ftrace_ops_trampoline_list in > ftrace_startup() if ftrace_hash_ipmodify_enable() fails there. It may > lead to BUG if such ops come from a module which may be removed. > > Moreover, the trampoline itself is not freed in this case. > > Fix it by calling ftrace_trampoline_free() during the rollback. > > Fixes: fc0ea795f53c ("ftrace: Add symbols for ftrace trampolines") > Signed-off-by: Miroslav Benes <mbe...@suse.cz> > --- > > It would be fair to add > > Fixes: f8b8be8a310a ("ftrace, kprobes: Support IPMODIFY flag to find IP > modify conflict") > > too. The situation was a bit more complicated back then though since > RCU-tasks support was missing. > > kernel/trace/ftrace.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c > index 275441254bb5..656d7cb5a78c 100644 > --- a/kernel/trace/ftrace.c > +++ b/kernel/trace/ftrace.c > @@ -2862,6 +2862,8 @@ int ftrace_startup(struct ftrace_ops *ops, int command) > __unregister_ftrace_function(ops); > ftrace_start_up--; > ops->flags &= ~FTRACE_OPS_FL_ENABLED; > + if (ops->flags & FTRACE_OPS_FL_DYNAMIC) > + ftrace_trampoline_free(ops); > return ret; > } > > -- > 2.28.0 >