mirror of https://gitee.com/openkylin/linux.git
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:
parent
3031313eb3
commit
d5e47505e0
|
@ -2862,6 +2862,8 @@ int ftrace_startup(struct ftrace_ops *ops, int command)
|
||||||
__unregister_ftrace_function(ops);
|
__unregister_ftrace_function(ops);
|
||||||
ftrace_start_up--;
|
ftrace_start_up--;
|
||||||
ops->flags &= ~FTRACE_OPS_FL_ENABLED;
|
ops->flags &= ~FTRACE_OPS_FL_ENABLED;
|
||||||
|
if (ops->flags & FTRACE_OPS_FL_DYNAMIC)
|
||||||
|
ftrace_trampoline_free(ops);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue