From: Igor Russkikh <igor.russk...@aquantia.com>
Date: Wed, 21 Nov 2018 10:13:42 +0000

> +static void aqc111_rx_checksum(struct sk_buff *skb, u64 *pkt_desc)
> +{
 ...
> +     /* checksum error bit is set */
> +     if (*pkt_desc & AQ_RX_PD_L4_ERR || *pkt_desc & AQ_RX_PD_L3_ERR)
> +             return;
 ...
> @@ -661,6 +698,7 @@ static int aqc111_rx_fixup(struct usbnet *dev, struct 
> sk_buff *skb)
>               skb_set_tail_pointer(new_skb, new_skb->len);
>  
>               new_skb->truesize = new_skb->len + sizeof(struct sk_buff);
> +             aqc111_rx_checksum(new_skb, pkt_desc);

This is another reason to use a 'cpu_desc' local variable to hold the
endian translated descriptor value so you don't have to dereference
this thing over and over again.

Reply via email to