Showing error 1538

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


Source:

 837        skb->data[14]--;
 838
 839        dptr  = skb_push(skb, 1);
 840        *dptr = AX25_P_NETROM;
 841
 842        ax25s = ax25_send_frame(skb, 256, (ax25_address *)dev->dev_addr, &nr_neigh->callsign, nr_neigh->digipeat, nr_neigh->dev);
 843        if (nr_neigh->ax25 && ax25s) {
 844                /* We were already holding this ax25_cb */
 845                ax25_cb_put(ax25s);
 846        }
 847        nr_neigh->ax25 = ax25s;
 848
 849        dev_put(dev);
 850        ret = (nr_neigh->ax25 != NULL);
 851        nr_node_unlock(nr_node);
 852        nr_node_put(nr_node);
 853
 854        return ret;
 855}
 856
 857#ifdef CONFIG_PROC_FS
 858
 859static void *nr_node_start(struct seq_file *seq, loff_t *pos)
 860{
 861        struct nr_node *nr_node;
 862        struct hlist_node *node;
 863        int i = 1;
 864
 865        spin_lock_bh(&nr_node_list_lock);
 866        if (*pos == 0)
 867                return SEQ_START_TOKEN;
 868
 869        nr_node_for_each(nr_node, node, &nr_node_list) {
 870                if (i == *pos)
 871                        return nr_node;
 872                ++i;
 873        }
 874
 875        return NULL;
 876}
 877
Show full sources