From: jiangxiaoming Date: Thu, 30 Dec 2021 08:52:38 +0000 (+0000) Subject: vppinfra: fix bitmap can't get correct next clear index X-Git-Tag: v22.06-rc0~85 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=a3d8c2c21472c3088fb770d60d111fd5c55d9225;p=vpp.git vppinfra: fix bitmap can't get correct next clear index when bitmap vec len is 1 and all the bits has been occupied, clib_bitmap_next_clear(ai, 63) will return result:65 which should be 64. It will lead to missing iteration for pool_foreach. Type: fix Signed-off-by: jiangxiaoming Change-Id: Iadac7e6f6b4da357943c4c9d50bf22353c4a8408 --- diff --git a/src/vppinfra/bitmap.h b/src/vppinfra/bitmap.h index 3c95bfb4b43..d9bdd0fac7d 100644 --- a/src/vppinfra/bitmap.h +++ b/src/vppinfra/bitmap.h @@ -742,8 +742,7 @@ clib_bitmap_next_clear (uword * ai, uword i) return log2_first_set (t) + i0 * BITS (ai[0]); } - /* no clear bit left in bitmap, return bit just beyond bitmap */ - return (i0 * BITS (ai[0])) + 1; + return i0 * BITS (ai[0]); } return i; }