Showing error 1545

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


Source:

1053        rose_route->neigh1->use++;
1054        rose_route->neigh2->use++;
1055
1056        rose_route->next = rose_route_list;
1057        rose_route_list  = rose_route;
1058
1059        skb->data[0] &= 0xF0;
1060        skb->data[0] |= (rose_route->lci2 >> 8) & 0x0F;
1061        skb->data[1]  = (rose_route->lci2 >> 0) & 0xFF;
1062
1063        rose_transmit_link(skb, rose_route->neigh2);
1064        res = 1;
1065
1066out:
1067        spin_unlock_bh(&rose_route_list_lock);
1068        spin_unlock_bh(&rose_neigh_list_lock);
1069
1070        return res;
1071}
1072
1073#ifdef CONFIG_PROC_FS
1074
1075static void *rose_node_start(struct seq_file *seq, loff_t *pos)
1076        __acquires(rose_node_list_lock)
1077{
1078        struct rose_node *rose_node;
1079        int i = 1;
1080
1081        spin_lock_bh(&rose_node_list_lock);
1082        if (*pos == 0)
1083                return SEQ_START_TOKEN;
1084
1085        for (rose_node = rose_node_list; rose_node && i < *pos;
1086             rose_node = rose_node->next, ++i);
1087
1088        return (i == *pos) ? rose_node : NULL;
1089}
1090
1091static void *rose_node_next(struct seq_file *seq, void *v, loff_t *pos)
1092{
1093        ++*pos;
Show full sources