aboutsummaryrefslogtreecommitdiff
path: root/net/bluetooth/rfcomm/core.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2014-09-17 11:18:13 -0700
committerMark Brown <broonie@kernel.org>2014-09-17 11:18:13 -0700
commit0111d0f13469831266d716e3b50d580a3e25cff9 (patch)
treee2c082e97808f1303190fae3bb79cb8bf359bf2c /net/bluetooth/rfcomm/core.c
parent29a6185d2f78e35b0b36d0ed94bc27d2b71e1ef3 (diff)
parentaf92ba8fd23cb5811d96b833bbb7133efefeb5b9 (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.c7
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))