On Tue, 2018-10-02 at 10:26 +0100, Ben Dooks wrote:
[...]
> @@ -2031,7 +2045,8 @@ static struct sk_buff *smsc95xx_tx_fixup(struct usbnet 
> *dev,
> >     }
>  
>       if (csum) {
> -             if (skb->len <= 45) {
> +             /* note, csum does not work if csum in last DWORD of packet */
> +             if (skb->len <= 45 || !smsc95xx_can_checksum(skb)) {

It would make more sense to move the length check into
smsc95xx_can_checksum() as well.

Ben.

>                       /* workaround - hardware tx checksum does not work
>                        * properly with extremely small packets */
>                       long csstart = skb_checksum_start_offset(skb);
-- 
Ben Hutchings, Software Developer                         Codethink Ltd
https://www.codethink.co.uk/                 Dale House, 35 Dale Street
                                     Manchester, M1 2HF, United Kingdom

Reply via email to