ftrace: Free the trampoline when ftrace_startup() fails
authorMiroslav Benes <mbenes@suse.cz>
Mon, 31 Aug 2020 12:26:31 +0000 (14:26 +0200)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Fri, 18 Sep 2020 16:19:08 +0000 (12:19 -0400)
commitd5e47505e02666d5b3fe99212e0100791847dc8d
tree697631edc4da139080915b5e313b0c335a4da1e2
parent3031313eb3d549b7ad6f9fbcc52ba04412e3eb9e
ftrace: Free the trampoline when ftrace_startup() fails

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.

Link: https://lkml.kernel.org/r/20200831122631.28057-1-mbenes@suse.cz
Fixes: fc0ea795f53c ("ftrace: Add symbols for ftrace trampolines")
Fixes: f8b8be8a310a ("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>
kernel/trace/ftrace.c