Showing error 1466

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


Source:

2732        .llseek  = seq_lseek,
2733        .release = seq_release,
2734};
2735
2736static void *ptype_get_idx(loff_t pos)
2737{
2738        struct packet_type *pt = NULL;
2739        loff_t i = 0;
2740        int t;
2741
2742        list_for_each_entry_rcu(pt, &ptype_all, list) {
2743                if (i == pos)
2744                        return pt;
2745                ++i;
2746        }
2747
2748        for (t = 0; t < PTYPE_HASH_SIZE; t++) {
2749                list_for_each_entry_rcu(pt, &ptype_base[t], list) {
2750                        if (i == pos)
2751                                return pt;
2752                        ++i;
2753                }
2754        }
2755        return NULL;
2756}
2757
2758static void *ptype_seq_start(struct seq_file *seq, loff_t *pos)
2759        __acquires(RCU)
2760{
2761        rcu_read_lock();
2762        return *pos ? ptype_get_idx(*pos - 1) : SEQ_START_TOKEN;
2763}
2764
2765static void *ptype_seq_next(struct seq_file *seq, void *v, loff_t *pos)
2766{
2767        struct packet_type *pt;
2768        struct list_head *nxt;
2769        int hash;
2770
2771        ++*pos;
2772        if (v == SEQ_START_TOKEN)
Show full sources