summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorSubbaraya Sundeep <sbhatta@marvell.com>2021-08-30 21:00:43 +0300
committerDavid S. Miller <davem@davemloft.net>2021-08-31 13:35:26 +0300
commit6537e96d743b89294b397b4865c6c061abae31b0 (patch)
treea867c779caa97772ca551ccec07c0c44a7b6f55a /drivers/net
parentdc56ad7028c5f559b3ce90d5cca2e6b7b839f1d5 (diff)
downloadlinux-6537e96d743b89294b397b4865c6c061abae31b0.tar.xz
octeontx2-af: Fix loop in free and unmap counter
When the given counter does not belong to the entry then code ends up in infinite loop because the loop cursor, entry is not getting updated further. This patch fixes that by updating entry for every iteration. Fixes: a958dd59f9ce ("octeontx2-af: Map or unmap NPC MCAM entry and counter") Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Signed-off-by: Sunil Goutham <sgoutham@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
index b95485882dc9..6389ee7a9371 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
@@ -2979,10 +2979,11 @@ int rvu_mbox_handler_npc_mcam_unmap_counter(struct rvu *rvu,
index = find_next_bit(mcam->bmap, mcam->bmap_entries, entry);
if (index >= mcam->bmap_entries)
break;
+ entry = index + 1;
+
if (mcam->entry2cntr_map[index] != req->cntr)
continue;
- entry = index + 1;
npc_unmap_mcam_entry_and_cntr(rvu, mcam, blkaddr,
index, req->cntr);
}