hash: remove unnecessary locks in lock-free
authorDharmik Thakkar <dharmik.thakkar@arm.com>
Thu, 21 Nov 2019 18:17:59 +0000 (12:17 -0600)
committerThomas Monjalon <thomas@monjalon.net>
Sun, 19 Jan 2020 23:47:46 +0000 (00:47 +0100)
Remove __hash_rw_reader_unlock() calls from lock free hash lookup

Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Yipeng Wang <yipeng1.wang@intel.com>
lib/librte_hash/rte_cuckoo_hash.c

index 6c292b6..2ea33ce 100644 (file)
@@ -1286,10 +1286,8 @@ __rte_hash_lookup_with_hash_lf(const struct rte_hash *h, const void *key,
                /* Check if key is in primary location */
                bkt = &h->buckets[prim_bucket_idx];
                ret = search_one_bucket_lf(h, key, short_sig, data, bkt);
-               if (ret != -1) {
-                       __hash_rw_reader_unlock(h);
+               if (ret != -1)
                        return ret;
-               }
                /* Calculate secondary hash */
                bkt = &h->buckets[sec_bucket_idx];
 
@@ -1297,10 +1295,8 @@ __rte_hash_lookup_with_hash_lf(const struct rte_hash *h, const void *key,
                FOR_EACH_BUCKET(cur_bkt, bkt) {
                        ret = search_one_bucket_lf(h, key, short_sig,
                                                data, cur_bkt);
-                       if (ret != -1) {
-                               __hash_rw_reader_unlock(h);
+                       if (ret != -1)
                                return ret;
-                       }
                }
 
                /* The loads of sig_current in search_one_bucket