aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2008-05-12 21:20:56 +0200
committerThomas Gleixner <tglx@linutronix.de>2008-05-23 21:15:52 +0200
commitd15f57f23eaba975309a153b23699cd0c0236974 (patch)
tree8bff39ab0bae5727e691f88e783a2d5cfec2afb1 /kernel/trace
parent07a267cdd2fd7d1de9455b1e36a1635ace7276c7 (diff)
downloadkernel_samsung_smdk4412-d15f57f23eaba975309a153b23699cd0c0236974.zip
kernel_samsung_smdk4412-d15f57f23eaba975309a153b23699cd0c0236974.tar.gz
kernel_samsung_smdk4412-d15f57f23eaba975309a153b23699cd0c0236974.tar.bz2
ftrace: fix mutex unlock in trace output
If the trace output changes on reading the trace files, there is a chance that the start function will return NULL. If the start function of a sequence returns NULL the stop equivalent is not called. In this case, all locks that are taken must be released even if they are released in the stop function. This patch fixes a case that a mutex was not released on return of NULL in the start sequence function. 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')
-rw-r--r--kernel/trace/trace.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 3009aaf..ea11f4e 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -964,8 +964,10 @@ static void *s_start(struct seq_file *m, loff_t *pos)
mutex_lock(&trace_types_lock);
- if (!current_trace || current_trace != iter->trace)
+ if (!current_trace || current_trace != iter->trace) {
+ mutex_unlock(&trace_types_lock);
return NULL;
+ }
atomic_inc(&trace_record_cmdline_disabled);