ftrace: Free the trampoline when ftrace_startup() fails
Commitfc0ea795f5
("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. Link: https://lkml.kernel.org/r/20200831122631.28057-1-mbenes@suse.cz Fixes:fc0ea795f5
("ftrace: Add symbols for ftrace trampolines") Fixes:f8b8be8a31
("ftrace, kprobes: Support IPMODIFY flag to find IP modify conflict") Signed-off-by: Miroslav Benes <mbenes@suse.cz> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
Родитель
3031313eb3
Коммит
d5e47505e0
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче