Skip to content

Commit 2f3fe3f

Browse files
author
Shruti Parab
committed
bnxt_en: Query FW parameters when the CAPS_CHANGE bit is set
JIRA: https://issues.redhat.com/browse/RHEL-76565 commit a6c81e3 Author: shantiprasad shettar <shantiprasad.shettar@broadcom.com> Date: Mon Mar 10 11:31:26 2025 -0700 bnxt_en: Query FW parameters when the CAPS_CHANGE bit is set Newer FW can set the CAPS_CHANGE flag during ifup if some capabilities or configurations have changed. For example, the CoS queue configurations may have changed. Support this new flag by treating it almost like FW reset. The driver will essentially rediscover all features and capabilities, reconfigure all backing store context memory, reset everything to default, and reserve all resources. Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com> Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com> Signed-off-by: shantiprasad shettar <shantiprasad.shettar@broadcom.com> Signed-off-by: Michael Chan <michael.chan@broadcom.com> Link: https://patch.msgid.link/20250310183129.3154117-5-michael.chan@broadcom.com Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Shruti Parab <shruti.parab@broadcom.com>
1 parent 904721a commit 2f3fe3f

File tree

1 file changed

+6
-2
lines changed
  • drivers/net/ethernet/broadcom/bnxt

1 file changed

+6
-2
lines changed

drivers/net/ethernet/broadcom/bnxt/bnxt.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12171,6 +12171,7 @@ static int bnxt_hwrm_if_change(struct bnxt *bp, bool up)
1217112171
struct hwrm_func_drv_if_change_input *req;
1217212172
bool fw_reset = !bp->irq_tbl;
1217312173
bool resc_reinit = false;
12174+
bool caps_change = false;
1217412175
int rc, retry = 0;
1217512176
u32 flags = 0;
1217612177

@@ -12226,8 +12227,11 @@ static int bnxt_hwrm_if_change(struct bnxt *bp, bool up)
1222612227
set_bit(BNXT_STATE_ABORT_ERR, &bp->state);
1222712228
return -ENODEV;
1222812229
}
12229-
if (resc_reinit || fw_reset) {
12230-
if (fw_reset) {
12230+
if (flags & FUNC_DRV_IF_CHANGE_RESP_FLAGS_CAPS_CHANGE)
12231+
caps_change = true;
12232+
12233+
if (resc_reinit || fw_reset || caps_change) {
12234+
if (fw_reset || caps_change) {
1223112235
set_bit(BNXT_STATE_FW_RESET_DET, &bp->state);
1223212236
if (!test_bit(BNXT_STATE_IN_FW_RESET, &bp->state))
1223312237
bnxt_ulp_irq_stop(bp);

0 commit comments

Comments
 (0)