diff options
author | Gustavo F. Padovan <padovan@profusion.mobi> | 2010-06-03 15:34:20 -0400 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2010-07-21 13:39:07 -0400 |
commit | 4ea727ef9d507413f15da0de401d8a50b125649a (patch) | |
tree | 5a5eb90f1d859dcbe6c79bc8d4b14d3273816641 /net/bluetooth | |
parent | 260000896750690b774d4343294ae5cbff1423e5 (diff) |
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 <padovan@profusion.mobi>
Reviewed-by: João Paulo Rechi Vita <jprvita@profusion.mobi>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth')
-rw-r--r-- | net/bluetooth/l2cap.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c index 8c9f577dd46d..7c2273732909 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) | |||
3405 | pi->conn_state &= ~L2CAP_CONN_SEND_FBIT; | 3405 | pi->conn_state &= ~L2CAP_CONN_SEND_FBIT; |
3406 | } | 3406 | } |
3407 | 3407 | ||
3408 | if (pi->conn_state & L2CAP_CONN_REMOTE_BUSY && pi->unacked_frames > 0) | 3408 | if (pi->conn_state & L2CAP_CONN_REMOTE_BUSY) |
3409 | __mod_retrans_timer(); | 3409 | l2cap_retransmit_frames(sk); |
3410 | 3410 | ||
3411 | spin_lock_bh(&pi->send_lock); | 3411 | spin_lock_bh(&pi->send_lock); |
3412 | l2cap_ertm_send(sk); | 3412 | l2cap_ertm_send(sk); |