aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/l2cap.c
diff options
context:
space:
mode:
authorGustavo F. Padovan <padovan@profusion.mobi>2010-05-01 16:15:42 -0300
committerMarcel Holtmann <marcel@holtmann.org>2010-05-10 09:28:50 +0200
commit812e737e29a1d559e7bfbea675fdcfcbad9f5e1f (patch)
tree2f4a201363ae5738e3d70b5d51e8406211df51ef /net/bluetooth/l2cap.c
parentBluetooth: Fix crash when monitor timeout expires (diff)
downloadlinux-dev-812e737e29a1d559e7bfbea675fdcfcbad9f5e1f.tar.xz
linux-dev-812e737e29a1d559e7bfbea675fdcfcbad9f5e1f.zip
Bluetooth: Fix drop of acked packets on ERTM
l2cap_drop_acked_frames() was droping not sent packets, causing them to be not transmitted. 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 '')
-rw-r--r--net/bluetooth/l2cap.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index 2f9bbad42887..042fd967e79c 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -1262,7 +1262,8 @@ static void l2cap_drop_acked_frames(struct sock *sk)
{
struct sk_buff *skb;
- while ((skb = skb_peek(TX_QUEUE(sk)))) {
+ while ((skb = skb_peek(TX_QUEUE(sk))) &&
+ l2cap_pi(sk)->unacked_frames) {
if (bt_cb(skb)->tx_seq == l2cap_pi(sk)->expected_ack_seq)
break;