diff options
author | Mark Brown <broonie@kernel.org> | 2014-09-17 11:18:13 -0700 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-09-17 11:18:13 -0700 |
commit | 0111d0f13469831266d716e3b50d580a3e25cff9 (patch) | |
tree | e2c082e97808f1303190fae3bb79cb8bf359bf2c /net/bluetooth/rfcomm/core.c | |
parent | 29a6185d2f78e35b0b36d0ed94bc27d2b71e1ef3 (diff) | |
parent | af92ba8fd23cb5811d96b833bbb7133efefeb5b9 (diff) |
Merge tag 'v3.14.19' into linux-linaro-lsk-v3.14lsk-v3.14-14.09
This is the 3.14.19 stable release
Diffstat (limited to 'net/bluetooth/rfcomm/core.c')
-rw-r--r-- | net/bluetooth/rfcomm/core.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c index facd8a79c038..b08865111024 100644 --- a/net/bluetooth/rfcomm/core.c +++ b/net/bluetooth/rfcomm/core.c @@ -1859,10 +1859,13 @@ static struct rfcomm_session *rfcomm_process_rx(struct rfcomm_session *s) /* Get data directly from socket receive queue without copying it. */ while ((skb = skb_dequeue(&sk->sk_receive_queue))) { skb_orphan(skb); - if (!skb_linearize(skb)) + if (!skb_linearize(skb)) { s = rfcomm_recv_frame(s, skb); - else + if (!s) + break; + } else { kfree_skb(skb); + } } if (s && (sk->sk_state == BT_CLOSED)) |