Hi Gustavo, (patch too big for me to review properly...) On Fri, Apr 1, 2011 at 6:33 PM, Gustavo F. Padovan <padovan@xxxxxxxxxxxxxx> wrote: > static void l2cap_retrans_timeout(unsigned long arg) > { > - struct sock *sk = (void *) arg; > + struct l2cap_chan *chan = (void *) arg; > + struct sock *sk = chan->sk; > > BT_DBG("sk %p", sk); > > @@ -978,9 +983,9 @@ static void l2cap_retrans_timeout(unsigned long arg) > l2cap_pi(sk)->retry_count = 1; > __mod_monitor_timer(); > > - l2cap_pi(sk)->conn_state |= L2CAP_CONN_WAIT_F; > + chan->conn_state |= L2CAP_CONN_WAIT_F; I suppose the above requires a lock ? In general it seems that by creating the additional "l2cap_chan" layer, all lock usages need to be reviewed (IMHO). > > - l2cap_send_rr_or_rnr(l2cap_pi(sk), L2CAP_CTRL_POLL); > + l2cap_send_rr_or_rnr(chan, L2CAP_CTRL_POLL); > bh_unlock_sock(sk); > } > Regards, -- Anderson Lizardo Instituto Nokia de Tecnologia - INdT Manaus - Brazil -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html