Commit f33a508c authored by Somnath Kotur's avatar Somnath Kotur Committed by Jakub Kicinski
Browse files

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: default avatarKalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: default avatarMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
Signed-off-by: default avatarSomnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
Link: https://patch.msgid.link/20250213011240.1640031-5-michael.chan@broadcom.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent e6ec5048
Loading
Loading
Loading
Loading
+16 −10
Original line number Diff line number Diff line
@@ -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,