]> git.hungrycats.org Git - linux/commitdiff
staging: r8712u: Do not queue cloned skb
authorLarry Finger <Larry.Finger@lwfinger.net>
Wed, 26 Sep 2012 19:01:31 +0000 (14:01 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 7 Oct 2012 15:32:24 +0000 (08:32 -0700)
commit fa16e5ea25d7dd83f663f333e70713aa2fa5dffe upstream.

Some post-3.4 kernels have a problem when a cloned skb is used in the
RX path. This patch handles one such case for r8712u.

The patch was suggested by Eric Dumazet.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8712/rtl8712_recv.c

index fa6dc9c09b3fbee0b4451f24f0ac9c3afb3bc5dc..887a80709ab84b48c2cc8088990922f4ff685d5d 100644 (file)
@@ -1126,6 +1126,9 @@ static void recv_tasklet(void *priv)
                recvbuf2recvframe(padapter, pskb);
                skb_reset_tail_pointer(pskb);
                pskb->len = 0;
-               skb_queue_tail(&precvpriv->free_recv_skb_queue, pskb);
+               if (!skb_cloned(pskb))
+                       skb_queue_tail(&precvpriv->free_recv_skb_queue, pskb);
+               else
+                       consume_skb(pskb);
        }
 }