5bed8b0704
The smallest TX ring size we support must fit a TX SKB with MAX_SKB_FRAGS
+ 1. Because the first TX BD for a packet is always a long TX BD, we
need an extra TX BD to fit this packet. Define BNXT_MIN_TX_DESC_CNT with
this value to make this more clear. The current code uses a minimum
that is off by 1. Fix it using this constant.
The tx_wake_thresh to determine when to wake up the TX queue is half the
ring size but we must have at least BNXT_MIN_TX_DESC_CNT for the next
packet which may have maximum fragments. So the comparison of the
available TX BDs with tx_wake_thresh should be >= instead of > in the
current code. Otherwise, at the smallest ring size, we will never wake
up the TX queue and will cause TX timeout.
Fixes:
|
||
---|---|---|
.. | ||
bnx2x | ||
bnxt | ||
genet | ||
b44.c | ||
b44.h | ||
bcm63xx_enet.c | ||
bcm63xx_enet.h | ||
bcm4908_enet.c | ||
bcm4908_enet.h | ||
bcmsysport.c | ||
bcmsysport.h | ||
bgmac-bcma-mdio.c | ||
bgmac-bcma.c | ||
bgmac-platform.c | ||
bgmac.c | ||
bgmac.h | ||
bnx2_fw.h | ||
bnx2.c | ||
bnx2.h | ||
cnic_defs.h | ||
cnic_if.h | ||
cnic.c | ||
cnic.h | ||
Kconfig | ||
Makefile | ||
sb1250-mac.c | ||
tg3.c | ||
tg3.h | ||
unimac.h |