ftrace: Remove function_trace_stop check from list func
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Wed, 25 Jun 2014 15:54:03 +0000 (11:54 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Fri, 18 Jul 2014 17:57:00 +0000 (13:57 -0400)
function_trace_stop is no longer used to stop function tracing.
Remove the check from __ftrace_ops_list_func().

Also, call FTRACE_WARN_ON() instead of setting function_trace_stop
if a ops has no func to call.

Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/ftrace.c

index 0fa1b87..70abf97 100644 (file)
@@ -4720,9 +4720,6 @@ __ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip,
        struct ftrace_ops *op;
        int bit;
 
-       if (function_trace_stop)
-               return;
-
        bit = trace_test_and_set_recursion(TRACE_LIST_START, TRACE_LIST_MAX);
        if (bit < 0)
                return;
@@ -4734,9 +4731,8 @@ __ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip,
        preempt_disable_notrace();
        do_for_each_ftrace_op(op, ftrace_ops_list) {
                if (ftrace_ops_test(op, ip, regs)) {
-                       if (WARN_ON(!op->func)) {
-                               function_trace_stop = 1;
-                               printk("op=%p %pS\n", op, op);
+                       if (FTRACE_WARN_ON(!op->func)) {
+                               pr_warn("op=%p %pS\n", op, op);
                                goto out;
                        }
                        op->func(ip, parent_ip, op, regs);