From: Petri Gynther <pgynt...@google.com> Date: Thu, 24 Mar 2016 11:27:21 -0700
> skb_len needs to be skb_headlen(skb) in bcmgenet_xmit_single(). > > Fragmented skbs can have only Ethernet + IP + TCP headers (14+20+20=54 bytes) > in the linear buffer, followed by the rest in fragments. Bumping skb_len to > ETH_ZLEN would be incorrect for this case, as it would introduce garbage > between TCP header and the fragment data. > > This also works with regular/non-fragmented small packets < ETH_ZLEN bytes. > Successfully tested this on GENETv3 with 42-byte ARP frames. > > For testing, I used: > ethtool -K eth0 tx-checksum-ipv4 off > ethtool -K eth0 tx-checksum-ipv6 off > echo 0 > /proc/sys/net/ipv4/tcp_timestamps > > Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file") > Signed-off-by: Petri Gynther <pgynt...@google.com> > Acked-by: Eric Dumazet <eduma...@google.com> Applied.