diff options
author | Steven Rostedt <srostedt@redhat.com> | 2008-05-12 21:20:48 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2008-05-23 20:54:16 +0200 |
commit | 4eebcc81a33fbc45e28542b50197ed7b3c486d90 (patch) | |
tree | 13bbad50aa8d4dc36d630ef08886876f4dc0b6eb /kernel/trace/trace_selftest.c | |
parent | 37ad508419f0fdfda7b378756eb1f35cfd26d96d (diff) | |
download | talos-op-linux-4eebcc81a33fbc45e28542b50197ed7b3c486d90.tar.gz talos-op-linux-4eebcc81a33fbc45e28542b50197ed7b3c486d90.zip |
ftrace: disable tracing on failure
Since ftrace touches practically every function. If we detect any
anomaly, we want to fully disable ftrace. This patch adds code
to try shutdown ftrace as much as possible without doing any more
harm is something is detected not quite correct.
This only kills ftrace, this patch does have checks for other parts of
the tracer (irqsoff, wakeup, etc.).
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/trace/trace_selftest.c')
-rw-r--r-- | kernel/trace/trace_selftest.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c index a6f1ed75f836..85715b86a342 100644 --- a/kernel/trace/trace_selftest.c +++ b/kernel/trace/trace_selftest.c @@ -248,6 +248,10 @@ trace_selftest_startup_function(struct tracer *trace, struct trace_array *tr) ftrace_enabled = save_ftrace_enabled; tracer_enabled = save_tracer_enabled; + /* kill ftrace totally if we failed */ + if (ret) + ftrace_kill(); + return ret; } #endif /* CONFIG_FTRACE */ |