]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bnxt_en: Fix warning in bnxt_dl_reload_down()
authorShantiprasad Shettar <shantiprasad.shettar@broadcom.com>
Tue, 4 Nov 2025 00:56:59 +0000 (16:56 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 5 Nov 2025 01:25:19 +0000 (17:25 -0800)
The existing code calls bnxt_cancel_reservations() after
bnxt_hwrm_func_drv_unrgtr() in bnxt_dl_reload_down().
bnxt_cancel_reservations() calls the FW and it will always fail since
the driver has already unregistered, triggering this warning:

bnxt_en 0000:0a:00.0 ens2np0: resc_qcaps failed

Fix it by calling bnxt_clear_reservations() which will skip the
unnecessary FW call since we have unregistered.

Fixes: 228ea8c187d8 ("bnxt_en: implement devlink dev reload driver_reinit")
Reviewed-by: Mohammad Shuab Siddique <mohammad-shuab.siddique@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@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/20251104005700.542174-6-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c

index c0e9caa1df735513214003376580ee02380be468..a625e7c311dd7e5f10a0d1f17603ccf109286585 100644 (file)
@@ -12439,7 +12439,7 @@ static int bnxt_try_recover_fw(struct bnxt *bp)
        return -ENODEV;
 }
 
-static void bnxt_clear_reservations(struct bnxt *bp, bool fw_reset)
+void bnxt_clear_reservations(struct bnxt *bp, bool fw_reset)
 {
        struct bnxt_hw_resc *hw_resc = &bp->hw_resc;
 
index 7df46a21dd185aee62d7c63bf5cf8da24db82510..3613a172483a16ac43c74fc8f27814dbf0bb7110 100644 (file)
@@ -2941,6 +2941,7 @@ void bnxt_report_link(struct bnxt *bp);
 int bnxt_update_link(struct bnxt *bp, bool chng_link_state);
 int bnxt_hwrm_set_pause(struct bnxt *);
 int bnxt_hwrm_set_link_setting(struct bnxt *, bool, bool);
+void bnxt_clear_reservations(struct bnxt *bp, bool fw_reset);
 int bnxt_cancel_reservations(struct bnxt *bp, bool fw_reset);
 int bnxt_hwrm_alloc_wol_fltr(struct bnxt *bp);
 int bnxt_hwrm_free_wol_fltr(struct bnxt *bp);
index 02961d93ed35d60dd5eb072a70dc15432a078ac3..67ca02d84c9793c293ad75bb0abefe108c00c801 100644 (file)
@@ -461,7 +461,7 @@ static int bnxt_dl_reload_down(struct devlink *dl, bool netns_change,
                        rtnl_unlock();
                        break;
                }
-               bnxt_cancel_reservations(bp, false);
+               bnxt_clear_reservations(bp, false);
                bnxt_free_ctx_mem(bp, false);
                break;
        }