linux/drivers/net/ethernet/broadcom
Siva Reddy Kallam b7d987295c tg3: Fix for tg3 transmit queue 0 timed out when too many gso_segs
tg3_tso_bug() can hit a condition where the entire tx ring is not big
enough to segment the GSO packet. For example, if MSS is very small,
gso_segs can exceed the tx ring size. When we hit the condition, it
will cause tx timeout.

tg3_tso_bug() is called to handle TSO and DMA hardware bugs.
For TSO bugs, if tg3_tso_bug() cannot succeed, we have to drop the packet.
For DMA bugs, we can still fall back to linearize the SKB and let the
hardware transmit the TSO packet.

This patch adds a function tg3_tso_bug_gso_check() to check if there
are enough tx descriptors for GSO before calling tg3_tso_bug().
The caller will then handle the error appropriately - drop or
lineraize the SKB.

v2: Corrected patch description to avoid confusion.

Signed-off-by: Siva Reddy Kallam <siva.kallam@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Prashant Sreedharan <prashant@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-02-09 04:39:14 -05:00
..
bnx2x Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-12-31 18:20:10 -05:00
bnxt bnxt_en: Fix crash in bnxt_free_tx_skbs() during tx timeout. 2016-01-29 17:28:39 -08:00
genet net: bcmgenet: Properly configure PHY to ignore interrupt 2016-01-21 10:48:51 -08: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: Fix reversed test of build_skb() return value. 2016-01-15 16:07:13 -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: Rebranding cnic driver. 2014-06-25 16:27:27 -07:00
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 cnic: Rebranding cnic driver. 2014-06-25 16:27:27 -07:00
Kconfig net: bgmac: clarify CONFIG_BCMA dependency 2016-01-29 20:33:38 -08: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