mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
staging: r8712u: fix bug in r8712_recv_indicatepkt()
commit abf02cfc17 upstream.
64bit arches have a buggy r8712u driver, let's fix it.
skb->tail must be set properly or network stack behavior is undefined.
Addresses https://bugzilla.redhat.com/show_bug.cgi?id=847525
Addresses https://bugzilla.kernel.org/show_bug.cgi?id=45071
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Dave Jones <davej@redhat.com>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
ef7d68b798
commit
7bdec51f75
@@ -113,13 +113,8 @@ void r8712_recv_indicatepkt(struct _adapter *padapter,
|
||||
if (skb == NULL)
|
||||
goto _recv_indicatepkt_drop;
|
||||
skb->data = precv_frame->u.hdr.rx_data;
|
||||
#ifdef NET_SKBUFF_DATA_USES_OFFSET
|
||||
skb->tail = (sk_buff_data_t)(precv_frame->u.hdr.rx_tail -
|
||||
precv_frame->u.hdr.rx_head);
|
||||
#else
|
||||
skb->tail = (sk_buff_data_t)precv_frame->u.hdr.rx_tail;
|
||||
#endif
|
||||
skb->len = precv_frame->u.hdr.len;
|
||||
skb_set_tail_pointer(skb, skb->len);
|
||||
if ((pattrib->tcpchk_valid == 1) && (pattrib->tcp_chkrpt == 1))
|
||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user