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