When malloc for multiwriter_lock, the align should be
RTE_CACHE_LINE_SIZE rather than LCORE_CACHE_SIZE.

Also there should be check to verify the success of
rte_malloc.

Fixes: be856325cba3 ("hash: add scalable multi-writer insertion with Intel TSX")
Cc: sta...@dpdk.org

Signed-off-by: Yipeng Wang <yipeng1.w...@intel.com>
---
 lib/librte_hash/rte_cuckoo_hash.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/librte_hash/rte_cuckoo_hash.c 
b/lib/librte_hash/rte_cuckoo_hash.c
index a07543a..80dcf41 100644
--- a/lib/librte_hash/rte_cuckoo_hash.c
+++ b/lib/librte_hash/rte_cuckoo_hash.c
@@ -281,7 +281,10 @@ rte_hash_create(const struct rte_hash_parameters *params)
                        h->add_key = ADD_KEY_MULTIWRITER;
                        h->multiwriter_lock = rte_malloc(NULL,
                                                        sizeof(rte_spinlock_t),
-                                                       LCORE_CACHE_SIZE);
+                                                       RTE_CACHE_LINE_SIZE);
+                       if (h->multiwriter_lock == NULL)
+                               goto err_unlock;
+
                        rte_spinlock_init(h->multiwriter_lock);
                }
        } else
-- 
2.7.4

Reply via email to