ftrace: Remove FTRACE_FL_CONVERTED flag
authorSteven Rostedt <srostedt@redhat.com>
Mon, 25 Apr 2011 18:32:42 +0000 (14:32 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Sat, 30 Apr 2011 02:53:04 +0000 (22:53 -0400)
Since we disable all function tracer processing if we detect
that a modification of a instruction had failed, we do not need
to track that the record has failed. No more ftrace processing
is allowed, and the FTRACE_FL_CONVERTED flag is pointless.

The FTRACE_FL_CONVERTED flag was used to denote records that were
successfully converted from mcount calls into nops. But if a single
record fails, all of ftrace is disabled.

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

index 2a195ff..3204744 100644 (file)
@@ -150,7 +150,6 @@ enum {
        FTRACE_FL_FILTER        = (1 << 1),
        FTRACE_FL_ENABLED       = (1 << 2),
        FTRACE_FL_NOTRACE       = (1 << 3),
-       FTRACE_FL_CONVERTED     = (1 << 4),
 };
 
 struct dyn_ftrace {
index eb19fae..9abaaf4 100644 (file)
@@ -1087,12 +1087,8 @@ static void ftrace_replace_code(int enable)
                return;
 
        do_for_each_ftrace_rec(pg, rec) {
-               /*
-                * Skip over free records, records that have
-                * failed and not converted.
-                */
-               if (rec->flags & FTRACE_FL_FREE ||
-                   !(rec->flags & FTRACE_FL_CONVERTED))
+               /* Skip over free records */
+               if (rec->flags & FTRACE_FL_FREE)
                        continue;
 
                failed = __ftrace_replace_code(rec, enable);
@@ -1280,10 +1276,10 @@ static int ftrace_update_code(struct module *mod)
                 */
                if (!ftrace_code_disable(mod, p)) {
                        ftrace_free_rec(p);
-                       continue;
+                       /* Game over */
+                       break;
                }
 
-               p->flags |= FTRACE_FL_CONVERTED;
                ftrace_update_cnt++;
 
                /*