From: Gustavo F. Padovan Date: Thu, 3 Jun 2010 19:34:20 +0000 (-0300) Subject: Bluetooth: Fix missing retransmission action with RR(P=1) X-Git-Tag: v2.6.36-rc1~571^2~64^2~48^2~41 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=4ea727ef9d507413f15da0de401d8a50b125649a;p=~emulex%2Finfiniband.git Bluetooth: Fix missing retransmission action with RR(P=1) The Bluetooth SIG Profile Tuning Suite Software uses the CSA1 spec to run the L2CAP tests. The new 3.0 spec has a missing Retransmit-I-Frames action when the Remote side is Busy. We still start the retransmission timer if Remote is Busy and unacked frames > 0. We do everything we did before this change plus the Retransmission of I-frames. Signed-off-by: Gustavo F. Padovan Reviewed-by: João Paulo Rechi Vita Signed-off-by: Marcel Holtmann --- diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c index 8c9f577dd46..7c227373290 100644 --- a/net/bluetooth/l2cap.c +++ b/net/bluetooth/l2cap.c @@ -3405,8 +3405,8 @@ static inline void l2cap_send_i_or_rr_or_rnr(struct sock *sk) pi->conn_state &= ~L2CAP_CONN_SEND_FBIT; } - if (pi->conn_state & L2CAP_CONN_REMOTE_BUSY && pi->unacked_frames > 0) - __mod_retrans_timer(); + if (pi->conn_state & L2CAP_CONN_REMOTE_BUSY) + l2cap_retransmit_frames(sk); spin_lock_bh(&pi->send_lock); l2cap_ertm_send(sk);