From dd57d376b1b73418fc8c5177ff0c33ecee6c73fb Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Wed, 16 Nov 2011 09:32:19 +0100 Subject: [PATCH] --- yaml --- r: 278579 b: refs/heads/master c: 039d9572f11ef46ff2743798f2170a888d393ec6 h: refs/heads/master i: 278577: 1f5760859b325a83dad4b4b74bac35285f03fb0b 278575: 2857712be1783ac87ad41f0a694270174398610f v: v3 --- [refs] | 2 +- trunk/net/bluetooth/l2cap_core.c | 13 +++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 14c59f91141f..619f4550d465 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: aef89f214e4306153c7913b9854456595153f5d8 +refs/heads/master: 039d9572f11ef46ff2743798f2170a888d393ec6 diff --git a/trunk/net/bluetooth/l2cap_core.c b/trunk/net/bluetooth/l2cap_core.c index 276817a90f59..bd65b3e8a1df 100644 --- a/trunk/net/bluetooth/l2cap_core.c +++ b/trunk/net/bluetooth/l2cap_core.c @@ -3562,14 +3562,10 @@ static int l2cap_add_to_srej_queue(struct l2cap_chan *chan, struct sk_buff *skb, bt_cb(skb)->sar = sar; next_skb = skb_peek(&chan->srej_q); - if (!next_skb) { - __skb_queue_tail(&chan->srej_q, skb); - return 0; - } tx_seq_offset = __seq_offset(chan, tx_seq, chan->buffer_seq); - do { + while (next_skb) { if (bt_cb(next_skb)->tx_seq == tx_seq) return -EINVAL; @@ -3582,9 +3578,10 @@ static int l2cap_add_to_srej_queue(struct l2cap_chan *chan, struct sk_buff *skb, } if (skb_queue_is_last(&chan->srej_q, next_skb)) - break; - - } while ((next_skb = skb_queue_next(&chan->srej_q, next_skb))); + next_skb = NULL; + else + next_skb = skb_queue_next(&chan->srej_q, next_skb); + } __skb_queue_tail(&chan->srej_q, skb);