common/cnxk: fix freeing MCAM counter
authorSatheesh Paul <psatheesh@marvell.com>
Fri, 17 Sep 2021 04:37:46 +0000 (10:07 +0530)
committerJerin Jacob <jerinj@marvell.com>
Mon, 4 Oct 2021 15:43:07 +0000 (17:43 +0200)
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>
drivers/common/cnxk/roc_npc_mcam.c

index 4985d22..91ed2dd 100644 (file)
@@ -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;
        }