hash: fix multiwriter lock memory allocation
authorYipeng Wang <yipeng1.wang@intel.com>
Tue, 10 Jul 2018 16:59:54 +0000 (09:59 -0700)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 12 Jul 2018 21:03:14 +0000 (23:03 +0200)
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: stable@dpdk.org
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
lib/librte_hash/rte_cuckoo_hash.c

index 375e7d2..f8669a1 100644 (file)
@@ -280,7 +280,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