Bluetooth: Allow unsegmented SDU retries on sock_queue_rcv_skb failure
authorRuiyi Zhang <Ruiyi.Zhang@Atheros.com>
Fri, 13 May 2011 05:07:52 +0000 (13:07 +0800)
committerJaikumar Ganesh <jaikumar@google.com>
Mon, 11 Jul 2011 18:59:11 +0000 (11:59 -0700)
In L2CAP_SDU_UNSEGMENTED case, if sock_queue_rcv_skb returns error,
l2cap_ertm_reassembly_sdu should not return 0 so as to insert the
skb into BUSY_QUEUE for later retries.

Signed-off-by: Ruiyi Zhang <Ruiyi.Zhang@Atheros.com>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
net/bluetooth/l2cap_core.c

index 0fe4da50fb9fa616e135e3179b4c8558a776cdde..07621ceccda2c913fc3cfa8401d2d9314e46f3a9 100644 (file)
@@ -2929,11 +2929,7 @@ static int l2cap_ertm_reassembly_sdu(struct l2cap_chan *chan, struct sk_buff *sk
                if (chan->conn_state & L2CAP_CONN_SAR_SDU)
                        goto drop;
 
-               err = sock_queue_rcv_skb(chan->sk, skb);
-               if (!err)
-                       return err;
-
-               break;
+               return sock_queue_rcv_skb(chan->sk, skb);
 
        case L2CAP_SDU_START:
                if (chan->conn_state & L2CAP_CONN_SAR_SDU)