linux/drivers/net/ethernet/broadcom/bnxt
Michael Chan 195af57914 bnxt_en: Fix unnecessary dropping of RX packets
In bnxt_poll_p5(), we first check cpr->has_more_work.  If it is true,
we are in NAPI polling mode and we will call __bnxt_poll_cqs() to
continue polling.  It is possible to exhanust the budget again when
__bnxt_poll_cqs() returns.

We then enter the main while loop to check for new entries in the NQ.
If we had previously exhausted the NAPI budget, we may call
__bnxt_poll_work() to process an RX entry with zero budget.  This will
cause packets to be dropped unnecessarily, thinking that we are in the
netpoll path.  Fix it by breaking out of the while loop if we need
to process an RX NQ entry with no budget left.  We will then exit
NAPI and stay in polling mode.

Fixes: 389a877a3b ("bnxt_en: Process the NQ under NAPI continuous polling.")
Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-05-03 17:41:32 -07:00
..
bnxt_coredump.c bnxt_en: use firmware provided max timeout for messages 2022-01-09 16:27:23 -08:00
bnxt_coredump.h bnxt_en: move coredump functions into dedicated file 2021-10-29 12:13:05 +01:00
bnxt_dcb.c bnxt_en: Properly report no pause support on some cards 2022-03-05 11:16:56 +00:00
bnxt_dcb.h bnxt_en: Use struct_group_attr() for memcpy() region 2021-09-25 08:20:48 -07:00
bnxt_debugfs.c
bnxt_debugfs.h
bnxt_devlink.c bnxt: revert hastily merged uAPI aberrations 2022-03-09 19:55:00 -08:00
bnxt_devlink.h bnxt: revert hastily merged uAPI aberrations 2022-03-09 19:55:00 -08:00
bnxt_dim.c
bnxt_ethtool.c bnxt: revert hastily merged uAPI aberrations 2022-03-09 19:55:00 -08:00
bnxt_ethtool.h bnxt: revert hastily merged uAPI aberrations 2022-03-09 19:55:00 -08:00
bnxt_fw_hdr.h
bnxt_hsi.h bnxt_en: Update firmware interface to 1.10.2.73 2022-01-26 15:35:20 +00:00
bnxt_hwrm.c bnxt_en: Increase firmware message response DMA wait time 2022-02-20 13:47:15 +00:00
bnxt_hwrm.h bnxt_en: Increase firmware message response DMA wait time 2022-02-20 13:47:15 +00:00
bnxt_nvm_defs.h
bnxt_ptp.c bnxt_en: Initiallize bp->ptp_lock first before using it 2022-05-03 17:41:32 -07:00
bnxt_ptp.h net: bnxt_ptp: fix compilation error 2022-03-28 13:29:32 -07:00
bnxt_sriov.c bnxt: use the devlink instance lock to protect sriov 2022-03-21 14:11:38 +00:00
bnxt_sriov.h ethernet: constify references to netdev->dev_addr in drivers 2021-10-14 09:22:11 -07:00
bnxt_tc.c flow_offload: reject to offload tc actions in offload drivers 2021-12-19 14:08:47 +00:00
bnxt_tc.h
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: Remove not used other ULP define 2021-10-29 21:21:09 -07:00
bnxt_vfr.c devlink: hold the instance lock during eswitch_mode callbacks 2022-03-21 14:11:38 +00: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 bnxt_en: Prevent XDP redirect from running when stopping TX queue 2022-04-04 12:44:50 +01:00
bnxt_xdp.h bnxt_en: Synchronize tx when xdp redirects happen on same ring 2022-04-04 12:44:50 +01:00
bnxt.c bnxt_en: Fix unnecessary dropping of RX packets 2022-05-03 17:41:32 -07:00
bnxt.h bnxt_en: reserve space inside receive page for skb_shared_info 2022-04-04 12:44:50 +01:00
Makefile bnxt_en: move coredump functions into dedicated file 2021-10-29 12:13:05 +01:00