summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>2013-07-31 19:16:22 +0200
committerSteven Rostedt <rostedt@goodmis.org>2013-07-31 19:16:22 +0200
commit2ba64035d0ca966fd189bc3e0826343fc81bf482 (patch)
treeca96642c76e96d13d7ace443a26e26f622c3337f
parenttracing: trace_remove_event_call() should fail if call/file is in use (diff)
downloadlinux-2ba64035d0ca966fd189bc3e0826343fc81bf482.tar.xz
linux-2ba64035d0ca966fd189bc3e0826343fc81bf482.zip
tracing: Add comment to describe special break case in probe_remove_event_call()
The "break" used in the do_for_each_event_file() is used as an optimization as the loop is really a double loop. The loop searches all event files for each trace_array. There's only one matching event file per trace_array and after we find the event file for the trace_array, the break is used to jump to the next trace_array and start the search there. As this is not a standard way of using "break" in C code, it requires a comment right before the break to let people know what is going on. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--kernel/trace/trace_events.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index ec04836273c0..29a7ebcfb426 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -1732,6 +1732,12 @@ static int probe_remove_event_call(struct ftrace_event_call *call)
*/
if (file->flags & FTRACE_EVENT_FL_ENABLED)
return -EBUSY;
+ /*
+ * The do_for_each_event_file_safe() is
+ * a double loop. After finding the call for this
+ * trace_array, we use break to jump to the next
+ * trace_array.
+ */
break;
} while_for_each_event_file();