Showing error 1506

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


Source:

1089
1090        IRDA_DEBUG(4, "Setting N1 = %d\n", self->N1);
1091
1092        /* Set N2 to match our own disconnect time */
1093        self->N2 = self->qos_tx.link_disc_time.value * 1000 /
1094                self->qos_rx.max_turn_time.value;
1095        IRDA_DEBUG(4, "Setting N2 = %d\n", self->N2);
1096}
1097
1098#ifdef CONFIG_PROC_FS
1099struct irlap_iter_state {
1100        int id;
1101};
1102
1103static void *irlap_seq_start(struct seq_file *seq, loff_t *pos)
1104{
1105        struct irlap_iter_state *iter = seq->private;
1106        struct irlap_cb *self;
1107
1108        /* Protect our access to the tsap list */
1109        spin_lock_irq(&irlap->hb_spinlock);
1110        iter->id = 0;
1111
1112        for (self = (struct irlap_cb *) hashbin_get_first(irlap);
1113             self; self = (struct irlap_cb *) hashbin_get_next(irlap)) {
1114                if (iter->id == *pos)
1115                        break;
1116                ++iter->id;
1117        }
1118
1119        return self;
1120}
1121
1122static void *irlap_seq_next(struct seq_file *seq, void *v, loff_t *pos)
1123{
1124        struct irlap_iter_state *iter = seq->private;
1125
1126        ++*pos;
1127        ++iter->id;
1128        return (void *) hashbin_get_next(irlap);
1129}
Show full sources