bnxt_en: Refactor completion ring free routine

Add a wrapper routine to free L2 completion rings.  This will be
useful later in the series.

Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Link: https://patch.msgid.link/20250213011240.1640031-5-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Somnath Kotur 2025-02-12 17:12:32 -08:00 committed by Jakub Kicinski
parent e6ec504856
commit f33a508c23
1 changed files with 16 additions and 10 deletions

View File

@ -7405,6 +7405,20 @@ static void bnxt_hwrm_rx_agg_ring_free(struct bnxt *bp,
bp->grp_info[grp_idx].agg_fw_ring_id = INVALID_HW_RING_ID;
}
static void bnxt_hwrm_cp_ring_free(struct bnxt *bp,
struct bnxt_cp_ring_info *cpr)
{
struct bnxt_ring_struct *ring;
ring = &cpr->cp_ring_struct;
if (ring->fw_ring_id == INVALID_HW_RING_ID)
return;
hwrm_ring_free_send_msg(bp, ring, RING_FREE_REQ_RING_TYPE_L2_CMPL,
INVALID_HW_RING_ID);
ring->fw_ring_id = INVALID_HW_RING_ID;
}
static void bnxt_hwrm_ring_free(struct bnxt *bp, bool close_path)
{
u32 type;
@ -7450,17 +7464,9 @@ static void bnxt_hwrm_ring_free(struct bnxt *bp, bool close_path)
struct bnxt_ring_struct *ring;
int j;
for (j = 0; j < cpr->cp_ring_count && cpr->cp_ring_arr; j++) {
struct bnxt_cp_ring_info *cpr2 = &cpr->cp_ring_arr[j];
for (j = 0; j < cpr->cp_ring_count && cpr->cp_ring_arr; j++)
bnxt_hwrm_cp_ring_free(bp, &cpr->cp_ring_arr[j]);
ring = &cpr2->cp_ring_struct;
if (ring->fw_ring_id == INVALID_HW_RING_ID)
continue;
hwrm_ring_free_send_msg(bp, ring,
RING_FREE_REQ_RING_TYPE_L2_CMPL,
INVALID_HW_RING_ID);
ring->fw_ring_id = INVALID_HW_RING_ID;
}
ring = &cpr->cp_ring_struct;
if (ring->fw_ring_id != INVALID_HW_RING_ID) {
hwrm_ring_free_send_msg(bp, ring, type,