From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pablo de Lara Subject: [PATCH] hash: fix incorrect free slot check Date: Tue, 4 Oct 2016 08:16:34 +0100 Message-ID: <1475565394-184188-1-git-send-email-pablo.de.lara.guarch@intel.com> Cc: bruce.richardson@intel.com, Pablo de Lara To: dev@dpdk.org Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 00E4C2C07 for ; Tue, 4 Oct 2016 09:15:28 +0200 (CEST) List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" In function rte_hash_cuckoo_insert_mw_tm, while looking for an empty slot, only the first entry in the bucket was being checked, as key_idx array was not being iterated. Fixes: 5fc74c2e146d ("hash: check if slot is empty with key index") Reported-by: Bruce Richardson Signed-off-by: Pablo de Lara --- lib/librte_hash/rte_cuckoo_hash_x86.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_hash/rte_cuckoo_hash_x86.h b/lib/librte_hash/rte_cuckoo_hash_x86.h index e16d69c..7ffa56f 100644 --- a/lib/librte_hash/rte_cuckoo_hash_x86.h +++ b/lib/librte_hash/rte_cuckoo_hash_x86.h @@ -53,7 +53,7 @@ rte_hash_cuckoo_insert_mw_tm(struct rte_hash_bucket *prim_bkt, */ for (i = 0; i < RTE_HASH_BUCKET_ENTRIES; i++) { /* Check if slot is available */ - if (likely(prim_bkt->key_idx == EMPTY_SLOT)) { + if (likely(prim_bkt->key_idx[i] == EMPTY_SLOT)) { prim_bkt->signatures[i].current = sig; prim_bkt->signatures[i].alt = alt_hash; prim_bkt->key_idx[i] = new_idx; -- 2.7.4