1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/ethernet/broadcom/bnxt
Pavan Chebbi 5d350dc342 bnxt_en: Fix the resource check condition for RSS contexts
While creating a new RSS context, bnxt_rfs_capable() currently
makes a strict check to see if the required VNICs are already
available.  If the current VNICs are not what is required,
either too many or not enough, it will call the firmware to
reserve the exact number required.

There is a bug in the firmware when the driver tries to
relinquish some reserved VNICs and RSS contexts.  It will
cause the default VNIC to lose its RSS configuration and
cause receive packets to be placed incorrectly.

Workaround this problem by skipping the resource reduction.
The driver will not reduce the VNIC and RSS context reservations
when a context is deleted.  The resources will be available for
use when new contexts are created later.

Potentially, this workaround can cause us to run out of VNIC
and RSS contexts if there are a lot of VF functions creating
and deleting RSS contexts.  In the future, we will conditionally
disable this workaround when the firmware fix is available.

Fixes: 438ba39b25 ("bnxt_en: Improve RSS context reservation infrastructure")
Reported-by: Jakub Kicinski <kuba@kernel.org>
Link: https://lore.kernel.org/netdev/20240625010210.2002310-1-kuba@kernel.org/
Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com>
Signed-off-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20240703180112.78590-1-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-07-04 07:40:27 -07:00
..
bnxt.c bnxt_en: Fix the resource check condition for RSS contexts 2024-07-04 07:40:27 -07:00
bnxt.h bnxt_en: Set TSO max segs on devices with limits 2024-06-20 06:46:08 -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: Fix possible crash after creating sw mqprio TCs 2024-01-19 21:15:13 -08:00
bnxt_dcb.h eth: bnxt: fix warning for define in struct_group 2023-07-28 13:47:34 -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: Optimize recovery path ULP locking in the driver 2024-05-02 07:27:21 -07:00
bnxt_devlink.h bnxt: revert hastily merged uAPI aberrations 2022-03-09 19:55:00 -08:00
bnxt_dim.c linux/dim: Move implementation to .c files 2019-06-25 13:46:39 -07:00
bnxt_ethtool.c bnxt_en: Don't support offline self test when RoCE driver is loaded 2024-05-02 07:27:20 -07:00
bnxt_ethtool.h bnxt_en: Enhance ethtool ntuple support for ip flows besides TCP/UDP 2024-02-09 12:37:41 -08:00
bnxt_fw_hdr.h
bnxt_hsi.h bnxt_en: Update firmware interface to 1.10.3.44 2024-06-20 06:46:08 -07:00
bnxt_hwmon.c bnxt_en: Do not call sleeping hwmon_notify_event() from NAPI 2023-10-22 11:41:45 +01:00
bnxt_hwmon.h bnxt_en: Do not call sleeping hwmon_notify_event() from NAPI 2023-10-22 11:41:45 +01:00
bnxt_hwrm.c bnxt_en: Adjust logging of firmware messages in case of released token in __hwrm_send() 2024-06-13 08:05:46 -07:00
bnxt_hwrm.h eth: bnxt: fix backward compatibility with older devices 2023-10-17 17:50:55 -07: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: Fix PTP firmware timeout parameter 2024-04-05 15:56:52 -07:00
bnxt_ptp.h bnxt_en: silence clang build warning 2024-05-10 18:16:35 -07:00
bnxt_sriov.c bnxt_en: Cap the size of HWRM_PORT_PHY_QCFG forwarded response 2024-06-13 07:50:16 -07:00
bnxt_sriov.h ethernet: constify references to netdev->dev_addr in drivers 2021-10-14 09:22:11 -07:00
bnxt_tc.c bnxt_en: flower: validate control flags 2024-04-24 19:57:19 -07: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: Add a mutex to synchronize ULP operations 2024-05-02 07:27:20 -07:00
bnxt_ulp.h bnxt_en: Add a mutex to synchronize ULP operations 2024-05-02 07:27:20 -07:00
bnxt_vfr.c bnxt_en: Link representors to PCI device 2023-06-21 14:07:09 -07:00
bnxt_vfr.h bnxt_en: Allow to set switchdev mode without existing VFs 2023-04-13 11:04:51 +02:00
bnxt_xdp.c bnxt_en: Add XDP Metadata support 2024-04-04 09:13:19 -07:00
bnxt_xdp.h bnxt_en: Change bnxt_rx_xdp function prototype 2024-04-04 09:13:19 -07:00
Makefile bnxt_en: Move hwmon functions into a dedicated file 2023-10-04 11:23:01 +01:00