Showing error 981

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: kernel/trace/trace.c
Line in file: 1075
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-03-02 21:35:17 UTC


Source:

1045                return NULL;
1046        }
1047
1048        atomic_inc(&trace_record_cmdline_disabled);
1049
1050        /* let the tracer grab locks here if needed */
1051        if (current_trace->start)
1052                current_trace->start(iter);
1053
1054        if (*pos != iter->pos) {
1055                iter->ent = NULL;
1056                iter->cpu = 0;
1057                iter->idx = -1;
1058
1059                ftrace_disable_cpu();
1060
1061                for_each_tracing_cpu(cpu) {
1062                        ring_buffer_iter_reset(iter->buffer_iter[cpu]);
1063                }
1064
1065                ftrace_enable_cpu();
1066
1067                for (p = iter; p && l < *pos; p = s_next(m, p, &l))
1068                        ;
1069
1070        } else {
1071                l = *pos - 1;
1072                p = s_next(m, p, &l);
1073        }
1074
1075        return p;
1076}
1077
1078static void s_stop(struct seq_file *m, void *p)
1079{
1080        struct trace_iterator *iter = m->private;
1081
1082        atomic_dec(&trace_record_cmdline_disabled);
1083
1084        /* let the tracer release locks here if needed */
1085        if (current_trace && current_trace == iter->trace && iter->trace->stop)
Show full sources