hash: fix allocation of an existing object
authorOlivier Matz <olivier.matz@6wind.com>
Wed, 6 Apr 2016 13:27:59 +0000 (15:27 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 6 Apr 2016 15:30:48 +0000 (17:30 +0200)
commit1aadacb5b0ed29ea8f84eaa3ef6802663671be98
tree11053e609adfcb74db7332b3840f476930c643af
parentf82f705b635d31a63446a16bc4526dbebf293c5a
hash: fix allocation of an existing object

Change rte_hash*_create() functions to return NULL and set rte_errno to
EEXIST when the object name already exists. This is the behavior
described in the API documentation in the header file.

These functions were returning a pointer to the existing object in that
case, but it is a problem as the caller did not know if the object had
to be freed or not.

Doing this change also makes the hash API more consistent with the other
APIs (mempool, rings, ...).

Fixes: 916e4f4f4e ("memory: fix for multi process support")

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
app/test/test_hash.c
doc/guides/rel_notes/release_16_04.rst
lib/librte_hash/rte_cuckoo_hash.c
lib/librte_hash/rte_fbk_hash.c