[PATCH net-next v4 0/8] bnxt_en: Ring accounting fixes
flat view
WARM2d
From: Michael Chan <michael.chan@broadcom.com>
Date: 2026-10-16 06:45:10
Revision v4 of 2 in this series.
Revisions (2)
- v3 [diff vs current]
- v4 current
The main purpose of this patchset is to fix ring accounting bugs specifically when FW is unable to reserve all the rings requested by the driver. This issue was first reported by Sashiko when reviewing the driver patches to support kTLS (patch #3 of 15): https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260810051358.1244418-7-michael.chan@broadcom.com kTLS support requires the new MPC rings, so the patches touch the existing ring reservation logic and exposed the issues to Sashiko. The issues are real but only likely to be hit with a large number of VFs, stressing the ring resources to the limit. These issues were not found in the lab or by users, so Jakub suggested splitting these out and posting them to net-next. The patchset includes some refactoring and some related fixes in this code path. The driver will now scale down the rings properly when FW is unable reserve all the rings requested by the driver. The default RSS context is also reset if the RX rings have been reduced if needed. Note that additional RSS contexts and n-tuple filters have similar problems if the RX rings are reduced and the fixes are deferred to a future patchset. Patch #6 is new and removes support for the obsolete NITRO A0, to make the fixes in patch #8 simpler. Patch #7 is new in v4 to refactor 2 helpers. The patches were tested on 5750X and 5760X chips using production FW version 237.x.x.x. v4: Improved patch #1 to fix a possible NULL bp->irq_tbl issue reported by Sashiko. Added a new patch #7 to fix the ring trimming issue in patch #8 reported by Sashiko. v3: Split from the original -net patchset (patchs 1 to 6) Updated to address some more Sashiko comments. Added the new patch #6 to remove NITRO A0. https://lore.kernel.org/netdev/20261012220827.340998-1-michael.chan@broadcom.com/ (local) v2: Updated to address some Sashiko comments. https://lore.kernel.org/netdev/20260928041712.3467803-1-michael.chan@broadcom.com/ (local) v1: https://lore.kernel.org/netdev/20260831024342.2161156-1-michael.chan@broadcom.com/ (local) Michael Chan (8): bnxt_en: Clear bp->total_irqs when disabling IRQs bnxt_en: Fix bnxt_reinit_features() when irq_re_init is true bnxt_en: Refactor RSS table check logic bnxt_en: Refactor IRQs required logic bnxt_en: Reinit IRQ when configuring LRO/GRO/HDS bnxt_en: Remove support for the old NITRO A0 chip bnxt_en: Refactor bnxt_num_cp_to_tx()/bnxt_num_tx_to_cp() helpers bnxt_en: Fix ring accounting and validation when rings are constrained drivers/net/ethernet/broadcom/bnxt/bnxt.c | 480 ++++++++---------- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 14 +- .../net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 22 +- drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 2 +- 4 files changed, 234 insertions(+), 284 deletions(-) -- 2.51.0