linux/drivers/net/ethernet/broadcom
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
..
bnx2x bnx2x: Prevent false warning for lack of FC NPIV 2016-03-18 19:17:16 -04:00
bnxt bnxt_en: Enable AER support. 2016-03-08 14:51:44 -05:00
genet net: bcmgenet: fix skb_len in bcmgenet_xmit_single() 2016-03-24 15:11:40 -04:00
b44.c phy: Add API for {un}registering an mdio device to a bus. 2016-01-07 14:31:26 -05:00
b44.h b44: Utilize BRCM_PSEUDO_PHY_ADDR 2015-06-10 23:33:58 -07:00
bcm63xx_enet.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
bcm63xx_enet.h
bcmsysport.c net: add netif_tx_napi_add() 2015-11-18 16:17:41 -05:00
bcmsysport.h net: systemport: Pre-calculate and utilize cb->bd_addr 2015-05-30 23:51:09 -07:00
bgmac.c bgmac: support Ethernet device on BCM47094 SoC 2016-02-24 15:33:58 -05:00
bgmac.h bgmac: Utilize BRCM_PSEUDO_PHY_ADDR 2015-06-10 23:33:58 -07:00
bnx2_fw.h bnx2-cnic: Driver Rebranding Changes 2015-02-20 15:46:49 -05:00
bnx2.c BNX2: free temp_stats_blk on error path 2015-10-12 19:33:46 -07:00
bnx2.h BNX2: fix a Null Pointer for stats_blk 2015-10-11 05:06:21 -07:00
cnic_defs.h
cnic_if.h cnic: Add the interfaces to get FC-NPIV table. 2015-08-06 21:54:12 -07:00
cnic.c cnic: Add the interfaces to get FC-NPIV table. 2015-08-06 21:54:12 -07:00
cnic.h
Kconfig bnx2x: add a separate GENEVE Kconfig symbol 2016-02-24 22:48:54 -05:00
Makefile bnxt_en: New Broadcom ethernet driver. 2015-10-22 19:30:33 -07:00
sb1250-mac.c net: ethernet: broadcom: Fix build errors 2016-01-10 22:05:30 -05:00
tg3.c tg3: Fix for tg3 transmit queue 0 timed out when too many gso_segs 2016-02-09 04:39:14 -05:00
tg3.h mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00