diff options
Diffstat (limited to 'net/bluetooth/rfcomm/core.c')
-rw-r--r-- | net/bluetooth/rfcomm/core.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c index 5ba3f6df665c..38b618c96de6 100644 --- a/net/bluetooth/rfcomm/core.c +++ b/net/bluetooth/rfcomm/core.c | |||
@@ -1853,7 +1853,10 @@ static inline void rfcomm_process_rx(struct rfcomm_session *s) | |||
1853 | /* Get data directly from socket receive queue without copying it. */ | 1853 | /* Get data directly from socket receive queue without copying it. */ |
1854 | while ((skb = skb_dequeue(&sk->sk_receive_queue))) { | 1854 | while ((skb = skb_dequeue(&sk->sk_receive_queue))) { |
1855 | skb_orphan(skb); | 1855 | skb_orphan(skb); |
1856 | rfcomm_recv_frame(s, skb); | 1856 | if (!skb_linearize(skb)) |
1857 | rfcomm_recv_frame(s, skb); | ||
1858 | else | ||
1859 | kfree_skb(skb); | ||
1857 | } | 1860 | } |
1858 | 1861 | ||
1859 | if (sk->sk_state == BT_CLOSED) { | 1862 | if (sk->sk_state == BT_CLOSED) { |