hash: fix race condition at creation
authorOlivier Matz <olivier.matz@6wind.com>
Wed, 6 Apr 2016 13:28:00 +0000 (15:28 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 6 Apr 2016 15:30:51 +0000 (17:30 +0200)
commit5d7bfb7337e917c8d97b43a75264789b01b6cfce
tree99db0450e77c9ccd60020b4b23125e55eea1da9b
parent1aadacb5b0ed29ea8f84eaa3ef6802663671be98
hash: fix race condition at creation

To avoid a race condition while creating a new hash object, the
list has to be locked before the lookup, and released only once the
new object is added in the list.

As the lock is held by the rte_ring_create(), move its creation at the
beginning of the function and only take the lock after the ring is
created to avoid a deadlock.

Fixes: 48a3991196 ("hash: replace with cuckoo hash implementation")

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
lib/librte_hash/rte_cuckoo_hash.c