Because of misuse of & vs && operator, the member code would
always use the primary bucket.

Fixes: 904ec78a239c ("member: implement HT mode")
Cc: yipeng1.w...@intel.com
Cc: sta...@dpdk.org

Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
---
 lib/member/rte_member_ht.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/member/rte_member_ht.c b/lib/member/rte_member_ht.c
index 357097ff4b..738471b378 100644
--- a/lib/member/rte_member_ht.c
+++ b/lib/member/rte_member_ht.c
@@ -494,7 +494,7 @@ rte_member_add_ht(const struct rte_member_setsum *ss,
                return ret;
 
        /* Random pick prim or sec for recursive displacement */
-       uint32_t select_bucket = (tmp_sig && 1U) ? prim_bucket : sec_bucket;
+       uint32_t select_bucket = (tmp_sig & 1U) ? prim_bucket : sec_bucket;
        if (ss->cache) {
                ret = evict_from_bucket();
                buckets[select_bucket].sigs[ret] = tmp_sig;
-- 
2.45.2

Reply via email to