ftrace: Update filter when tracing enabled in set_ftrace_filter()
authorSteven Rostedt <srostedt@redhat.com>
Wed, 13 Jul 2011 19:08:31 +0000 (15:08 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Thu, 14 Jul 2011 02:10:05 +0000 (22:10 -0400)
Currently, if set_ftrace_filter() is called when the ftrace_ops is
active, the function filters will not be updated. They will only be updated
when tracing is disabled and re-enabled.

Update the functions immediately during set_ftrace_filter().

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/ftrace.c

index 853f6f0..a0dc0de 100644 (file)
@@ -2869,6 +2869,10 @@ ftrace_set_regex(struct ftrace_ops *ops, unsigned char *buf, int len,
 
        mutex_lock(&ftrace_lock);
        ret = ftrace_hash_move(ops, enable, orig_hash, hash);
+       if (!ret && ops->flags & FTRACE_OPS_FL_ENABLED
+           && ftrace_enabled)
+               ftrace_run_update_code(FTRACE_ENABLE_CALLS);
+
        mutex_unlock(&ftrace_lock);
 
        mutex_unlock(&ftrace_regex_lock);