summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2011-01-27 22:53:06 -0500
committerSteven Rostedt <rostedt@goodmis.org>2011-02-07 20:56:18 -0500
commitf76690afd05e3e163149310bdcd30234f93b3a7a (patch)
tree83c0808d1354b26473ab0ac77515f4f683de32d1 /kernel
parent74e9e58c350a24139e268dd6857bbaa55c5aafcf (diff)
downloadlinux-stable-f76690afd05e3e163149310bdcd30234f93b3a7a.tar.gz
linux-stable-f76690afd05e3e163149310bdcd30234f93b3a7a.tar.bz2
linux-stable-f76690afd05e3e163149310bdcd30234f93b3a7a.zip
tracing/filter: Free pred array on disabling of filter
When a filter is disabled, free the preds. Cc: Tom Zanussi <tzanussi@gmail.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/trace/trace_events_filter.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
index b6c910642a1e..2f5458e244a3 100644
--- a/kernel/trace/trace_events_filter.c
+++ b/kernel/trace/trace_events_filter.c
@@ -1388,6 +1388,10 @@ int apply_event_filter(struct ftrace_event_call *call, char *filter_string)
if (!strcmp(strstrip(filter_string), "0")) {
filter_disable_preds(call);
+ reset_preds(call->filter);
+ /* Make sure the filter is not being used */
+ synchronize_sched();
+ __free_preds(call->filter);
remove_filter_string(call->filter);
goto out_unlock;
}