diff options
author | Larry Finger <Larry.Finger@lwfinger.net> | 2012-09-26 15:01:31 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-09-26 16:05:50 -0400 |
commit | fa16e5ea25d7dd83f663f333e70713aa2fa5dffe (patch) | |
tree | ae38ea2c45d8479e5ff9ebc60b0a91f732693a30 | |
parent | 3cd73bc1cf59b2c9232d9889ba2b148e262054b6 (diff) |
staging: r8712u: Do not queue cloned skb
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>
Cc: Stable <stable@vger.kernel.org> [v3.4+]
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/rtl8712/rtl8712_recv.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/staging/rtl8712/rtl8712_recv.c b/drivers/staging/rtl8712/rtl8712_recv.c index 4cd297aed788..c76732cdb183 100644 --- a/drivers/staging/rtl8712/rtl8712_recv.c +++ b/drivers/staging/rtl8712/rtl8712_recv.c | |||
@@ -1131,6 +1131,9 @@ static void recv_tasklet(void *priv) | |||
1131 | recvbuf2recvframe(padapter, pskb); | 1131 | recvbuf2recvframe(padapter, pskb); |
1132 | skb_reset_tail_pointer(pskb); | 1132 | skb_reset_tail_pointer(pskb); |
1133 | pskb->len = 0; | 1133 | pskb->len = 0; |
1134 | skb_queue_tail(&precvpriv->free_recv_skb_queue, pskb); | 1134 | if (!skb_cloned(pskb)) |
1135 | skb_queue_tail(&precvpriv->free_recv_skb_queue, pskb); | ||
1136 | else | ||
1137 | consume_skb(pskb); | ||
1135 | } | 1138 | } |
1136 | } | 1139 | } |