linux/drivers/net
Petri Gynther 7dd399130e net: bcmgenet: fix skb_len in bcmgenet_xmit_single()
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: 1c1008c793 ("net: bcmgenet: add main driver file")
Signed-off-by: Petri Gynther <pgynther@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-03-24 15:11:40 -04:00
..
appletalk
arcnet
bonding bonding: fix bond_get_stats() 2016-03-18 23:14:15 -04:00
caif
can can: rcar_can: Add r8a7795 support 2016-03-10 10:30:21 +01:00
cris
dsa net: dsa: make port_bridge_leave return void 2016-03-14 16:05:31 -04:00
ethernet net: bcmgenet: fix skb_len in bcmgenet_xmit_single() 2016-03-24 15:11:40 -04:00
fddi
fjes
hamradio
hippi
hyperv hv_netvsc: Fix the order of num_sc_offered decrement 2016-03-23 21:51:08 -04:00
ieee802154
ipvlan vlan: propagate gso_max_segs 2016-03-17 21:05:01 -04:00
irda
phy net: phy: at803x: Request 'reset' GPIO only for AT8030 PHY 2016-03-23 13:39:25 -04:00
plip
ppp ppp: take reference on channels netns 2016-03-23 14:35:31 -04:00
slip
team team: remove duplicate set of flag IFF_MULTICAST 2016-03-18 22:14:47 -04:00
usb Revert "lan78xx: add ndo_get_stats64" 2016-03-20 16:53:42 -04:00
vmxnet3 vmxnet3: fix lock imbalance in vmxnet3_tq_xmit() 2016-03-14 13:10:29 -04:00
wan farsync: fix off-by-one bug in fst_add_one 2016-03-14 13:09:49 -04:00
wimax
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-03-19 10:05:34 -07:00
xen-netback xen-netback: reduce log spam 2016-03-13 22:08:01 -04:00
dummy.c
eql.c
geneve.c geneve: fix populating tclass in geneve_get_v6_dst 2016-03-20 13:44:34 -04:00
ifb.c
Kconfig macsec: introduce IEEE 802.1AE driver 2016-03-13 22:40:24 -04:00
LICENSE.SRC
loopback.c
macsec.c macsec: introduce IEEE 802.1AE driver 2016-03-13 22:40:24 -04:00
macvlan.c vlan: propagate gso_max_segs 2016-03-17 21:05:01 -04:00
macvtap.c macvtap: always pass ethernet header in linear 2016-03-11 14:45:21 -05:00
Makefile macsec: introduce IEEE 802.1AE driver 2016-03-13 22:40:24 -04:00
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c rapidio/rionet: add mport removal handling 2016-03-22 15:36:02 -07:00
sb1000.c
Space.c
sungem_phy.c
tun.c
veth.c
virtio_net.c virtio/vhost: new features, performance improvements, cleanups 2016-03-20 13:28:18 -07:00
vrf.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-03-08 12:34:12 -05:00
vxlan.c vxlan: fix too large pskb_may_pull with remote checksum 2016-03-21 13:32:19 -04:00
xen-netfront.c