diff options
| -rw-r--r-- | kernel/trace/ftrace.c | 8 | ||||
| -rw-r--r-- | kernel/trace/trace.c | 3 | ||||
| -rw-r--r-- | kernel/trace/trace.h | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index c35c3e67d09a..74fdfe9ed3db 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c | |||
| @@ -4256,6 +4256,14 @@ unregister_ftrace_function_probe_func(char *glob, struct trace_array *tr, | |||
| 4256 | return ret; | 4256 | return ret; |
| 4257 | } | 4257 | } |
| 4258 | 4258 | ||
| 4259 | void clear_ftrace_function_probes(struct trace_array *tr) | ||
| 4260 | { | ||
| 4261 | struct ftrace_func_probe *probe, *n; | ||
| 4262 | |||
| 4263 | list_for_each_entry_safe(probe, n, &tr->func_probes, list) | ||
| 4264 | unregister_ftrace_function_probe_func(NULL, tr, probe->probe_ops); | ||
| 4265 | } | ||
| 4266 | |||
| 4259 | static LIST_HEAD(ftrace_commands); | 4267 | static LIST_HEAD(ftrace_commands); |
| 4260 | static DEFINE_MUTEX(ftrace_cmd_mutex); | 4268 | static DEFINE_MUTEX(ftrace_cmd_mutex); |
| 4261 | 4269 | ||
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index cdf97ce8cff2..664c44a6d48f 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
| @@ -7550,6 +7550,9 @@ static int instance_rmdir(const char *name) | |||
| 7550 | } | 7550 | } |
| 7551 | 7551 | ||
| 7552 | tracing_set_nop(tr); | 7552 | tracing_set_nop(tr); |
| 7553 | #if defined(CONFIG_FUNCTION_TRACER) && defined(CONFIG_DYNAMIC_FTRACE) | ||
| 7554 | clear_ftrace_function_probes(tr); | ||
| 7555 | #endif | ||
| 7553 | event_trace_del_tracer(tr); | 7556 | event_trace_del_tracer(tr); |
| 7554 | ftrace_clear_pids(tr); | 7557 | ftrace_clear_pids(tr); |
| 7555 | ftrace_destroy_function_files(tr); | 7558 | ftrace_destroy_function_files(tr); |
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index 291a1bca5748..98e0845f7235 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h | |||
| @@ -980,6 +980,7 @@ register_ftrace_function_probe(char *glob, struct trace_array *tr, | |||
| 980 | extern int | 980 | extern int |
| 981 | unregister_ftrace_function_probe_func(char *glob, struct trace_array *tr, | 981 | unregister_ftrace_function_probe_func(char *glob, struct trace_array *tr, |
| 982 | struct ftrace_probe_ops *ops); | 982 | struct ftrace_probe_ops *ops); |
| 983 | extern void clear_ftrace_function_probes(struct trace_array *tr); | ||
| 983 | 984 | ||
| 984 | int register_ftrace_command(struct ftrace_func_command *cmd); | 985 | int register_ftrace_command(struct ftrace_func_command *cmd); |
| 985 | int unregister_ftrace_command(struct ftrace_func_command *cmd); | 986 | int unregister_ftrace_command(struct ftrace_func_command *cmd); |
