hash: fix multiwriter lock memory allocation

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>
This commit is contained in:
Yipeng Wang 2018-07-10 09:59:54 -07:00 committed by Thomas Monjalon
parent 179c7e893f
commit 27c813679e

View 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