1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/ethernet/broadcom/bnxt
Michael Chan 5bed8b0704 bnxt_en: Fix TX timeout when TX ring size is set to the smallest
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: c0c050c58d ("bnxt_en: New Broadcom ethernet driver.")
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadocm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-09-20 10:08:36 +01:00
..
bnxt.c bnxt_en: Fix TX timeout when TX ring size is set to the smallest 2021-09-20 10:08:36 +01:00
bnxt.h bnxt_en: Fix TX timeout when TX ring size is set to the smallest 2021-09-20 10:08:36 +01:00
bnxt_coredump.h bnxt_en: Add support for ethtool get dump. 2018-08-05 17:08:26 -07:00
bnxt_dcb.c bnxt_en: update all firmware calls to use the new APIs 2021-08-30 09:35:04 +01:00
bnxt_dcb.h bnxt_en: Do not use the CNP CoS queue for networking traffic. 2018-08-05 17:08:26 -07:00
bnxt_debugfs.c bnxt: no need to check return value of debugfs_create functions 2019-08-10 15:25:47 -07:00
bnxt_debugfs.h bnxt_en: add debugfs support for DIM 2018-04-27 14:47:30 -04:00
bnxt_devlink.c bnxt_en: Fix asic.rev in devlink dev info command 2021-09-05 20:43:04 +01:00
bnxt_devlink.h bnxt_en: fix read of stored FW_PSID version on P5 devices 2021-09-05 20:43:03 +01:00
bnxt_dim.c linux/dim: Move implementation to .c files 2019-06-25 13:46:39 -07:00
bnxt_ethtool.c bnxt_en: Fix TX timeout when TX ring size is set to the smallest 2021-09-20 10:08:36 +01:00
bnxt_ethtool.h devlink: move request_firmware out of driver 2020-11-19 21:40:57 -08:00
bnxt_fw_hdr.h bnxt_en: Added support for Secure Firmware Update 2016-09-19 21:32:24 -04:00
bnxt_hsi.h bnxt_en: Update firmware interface to 1.10.2.52 2021-08-08 13:05:51 +01:00
bnxt_hwrm.c bnxt_en: fix kernel doc warnings in bnxt_hwrm.c 2021-09-01 16:24:25 -07:00
bnxt_hwrm.h bnxt_en: support multiple HWRM commands in flight 2021-08-30 09:35:04 +01:00
bnxt_nvm_defs.h bnxt_en: Fix memory fault in bnxt_ethtool_init() 2018-04-19 16:35:09 -04:00
bnxt_ptp.c bnxt_en: update all firmware calls to use the new APIs 2021-08-30 09:35:04 +01:00
bnxt_ptp.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-08-13 06:41:22 -07:00
bnxt_sriov.c bnxt_en: update all firmware calls to use the new APIs 2021-08-30 09:35:04 +01:00
bnxt_sriov.h bnxt_en: allow promiscuous mode for trusted VFs 2021-04-25 18:37:38 -07:00
bnxt_tc.c net/{mlx5|nfp|bnxt}: Remove unnecessary RTNL lock assert 2021-09-16 14:09:30 +01:00
bnxt_tc.h bnxt_en: Fix array overrun in bnxt_fill_l2_rewrite_fields(). 2019-11-13 14:28:30 -08:00
bnxt_ulp.c bnxt_en: update all firmware calls to use the new APIs 2021-08-30 09:35:04 +01:00
bnxt_ulp.h bnxt_en: Add doorbell information to bnxt_en_dev struct. 2020-05-04 10:44:11 -07:00
bnxt_vfr.c bnxt_en: update all firmware calls to use the new APIs 2021-08-30 09:35:04 +01:00
bnxt_vfr.h bnxt_en: Free and allocate VF-Reps during error recovery. 2021-04-12 13:20:38 -07:00
bnxt_xdp.c net: broadcom: switch from 'pci_' to 'dma_' API 2021-08-23 11:56:56 +01:00
bnxt_xdp.h bnxt_en: optimized XDP_REDIRECT support 2019-07-08 15:15:24 -07:00
Makefile bnxt_en: move HWRM API implementation into separate file 2021-08-30 09:35:04 +01:00