]> git.baikalelectronics.ru Git - kernel.git/commitdiff
octeontx2-af: Fix loop in free and unmap counter
authorSubbaraya Sundeep <sbhatta@marvell.com>
Mon, 30 Aug 2021 18:00:43 +0000 (23:30 +0530)
committerDavid S. Miller <davem@davemloft.net>
Tue, 31 Aug 2021 10:35:26 +0000 (11:35 +0100)
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>
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c

index b95485882dc986af7e14a6addee3f38f3f11e5ae..6389ee7a937141ad58396f762bbdf27a7746fbc1 100644 (file)
@@ -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);
        }