diff options
author | Gustavo F. Padovan <padovan@profusion.mobi> | 2010-06-16 17:21:44 -0300 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2010-07-21 10:39:06 -0700 |
commit | 2ece3684b4037ad2394de795d67abbe412ab5e2f (patch) | |
tree | b06d7a5e57517068ce782864112e2de3cf4b3826 /net/bluetooth/l2cap.c | |
parent | 7fe9b298c98fdfecf3b0efb4c971b7696d091ae9 (diff) | |
download | op-kernel-dev-2ece3684b4037ad2394de795d67abbe412ab5e2f.zip op-kernel-dev-2ece3684b4037ad2394de795d67abbe412ab5e2f.tar.gz |
Bluetooth: Update buffer_seq before retransmit frames
Updating buffer_seq first make us able to ack the last I-frame received.
This is also a requirement of the Profile Tuning Suite software.
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/l2cap.c')
-rw-r--r-- | net/bluetooth/l2cap.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c index 40cf67c1..ecf3e3d 100644 --- a/net/bluetooth/l2cap.c +++ b/net/bluetooth/l2cap.c @@ -3931,6 +3931,10 @@ expected: return 0; } + err = l2cap_push_rx_skb(sk, skb, rx_control); + if (err < 0) + return 0; + if (rx_control & L2CAP_CTRL_FINAL) { if (pi->conn_state & L2CAP_CONN_REJ_ACT) pi->conn_state &= ~L2CAP_CONN_REJ_ACT; @@ -3938,10 +3942,6 @@ expected: l2cap_retransmit_frames(sk); } - err = l2cap_push_rx_skb(sk, skb, rx_control); - if (err < 0) - return 0; - __mod_ack_timer(); pi->num_acked = (pi->num_acked + 1) % num_to_ack; |