Showing error 1435

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_stack.c
Line in file: 216
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-21 20:30:05 UTC


Source:

186{
187        long i;
188
189        (*pos)++;
190
191        if (v == SEQ_START_TOKEN)
192                i = 0;
193        else {
194                i = *(long *)v;
195                i++;
196        }
197
198        if (i >= max_stack_trace.nr_entries ||
199            stack_dump_trace[i] == ULONG_MAX)
200                return NULL;
201
202        m->private = (void *)i;
203
204        return &m->private;
205}
206
207static void *t_start(struct seq_file *m, loff_t *pos)
208{
209        void *t = SEQ_START_TOKEN;
210        loff_t l = 0;
211
212        local_irq_disable();
213        __raw_spin_lock(&max_stack_lock);
214
215        if (*pos == 0)
216                return SEQ_START_TOKEN;
217
218        for (; t && l < *pos; t = t_next(m, t, &l))
219                ;
220
221        return t;
222}
223
224static void t_stop(struct seq_file *m, void *p)
225{
226        __raw_spin_unlock(&max_stack_lock);
Show full sources