From: Satheesh Paul <psatheesh@marvell.com>
Date: Fri, 17 Sep 2021 04:37:46 +0000 (+0530)
Subject: common/cnxk: fix freeing MCAM counter
X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=d74d3744da6cf65e9d8daae2386c5bae39853022;p=dpdk.git

common/cnxk: fix freeing MCAM counter

Upon MCAM allocation failure, free counters only if counters
were allocated earlier for the flow rule.

Fixes: f9af90807466 ("common/cnxk: add mcam utility API")
Cc: stable@dpdk.org

Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
---

diff --git a/drivers/common/cnxk/roc_npc_mcam.c b/drivers/common/cnxk/roc_npc_mcam.c
index 4985d226c6..91ed2dd511 100644
--- a/drivers/common/cnxk/roc_npc_mcam.c
+++ b/drivers/common/cnxk/roc_npc_mcam.c
@@ -522,7 +522,8 @@ npc_mcam_alloc_and_write(struct npc *npc, struct roc_npc_flow *flow,
 
 	entry = npc_check_preallocated_entry_cache(mbox, flow, npc);
 	if (entry < 0) {
-		npc_mcam_free_counter(npc, ctr);
+		if (use_ctr)
+			npc_mcam_free_counter(npc, ctr);
 		return NPC_ERR_MCAM_ALLOC;
 	}