diff --git a/drivers/common/cnxk/roc_npc.c b/drivers/common/cnxk/roc_npc.c index 503c74748f..8386e0e956 100644 --- a/drivers/common/cnxk/roc_npc.c +++ b/drivers/common/cnxk/roc_npc.c @@ -1246,6 +1246,16 @@ roc_npc_flow_destroy(struct roc_npc *roc_npc, struct roc_npc_flow *flow) return rc; } + if (flow->ctr_id != NPC_COUNTER_NONE) { + rc = roc_npc_mcam_clear_counter(roc_npc, flow->ctr_id); + if (rc != 0) + return rc; + + rc = npc_mcam_free_counter(npc, flow->ctr_id); + if (rc != 0) + return rc; + } + rc = npc_mcam_free_entry(npc, flow->mcam_id); if (rc != 0) return rc;