Skip to content

Commit

Permalink
bnxt_en: Refactor completion ring free routine
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Somnath Kotur authored and Jakub Kicinski committed Feb 15, 2025
1 parent e6ec504 commit f33a508
Showing 1 changed file with 16 additions and 10 deletions.
26 changes: 16 additions & 10 deletions drivers/net/ethernet/broadcom/bnxt/bnxt.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit f33a508

Please sign in to comment.