aboutsummaryrefslogtreecommitdiffstats
path: root/lib/librte_hash/rte_cuckoo_hash_x86.h
diff options
context:
space:
mode:
authorLuca Boccassi <luca.boccassi@gmail.com>2018-09-03 10:48:52 +0100
committerLuca Boccassi <luca.boccassi@gmail.com>2018-09-03 10:49:31 +0100
commitcbcf3d44176009673fbcd7d15671bef56c021f6b (patch)
tree03ac41bbf9f5f9f238e62de84d43dcce721b8dab /lib/librte_hash/rte_cuckoo_hash_x86.h
parent1d9284040a0ba38d86e6eeffdb25f36eeb7a44e1 (diff)
parent6e7cbd63706f3435b9d9a2057a37db1da01db9a7 (diff)
Merge branch 'upstream-17.11-stable' into 17.11.x
Change-Id: Id5d87fa34325cf80217a1f633c9dc1808e931af8 Signed-off-by: Luca Boccassi <luca.boccassi@gmail.com>
Diffstat (limited to 'lib/librte_hash/rte_cuckoo_hash_x86.h')
-rw-r--r--lib/librte_hash/rte_cuckoo_hash_x86.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/librte_hash/rte_cuckoo_hash_x86.h b/lib/librte_hash/rte_cuckoo_hash_x86.h
index 0c94244a..a2f1663e 100644
--- a/lib/librte_hash/rte_cuckoo_hash_x86.h
+++ b/lib/librte_hash/rte_cuckoo_hash_x86.h
@@ -95,6 +95,9 @@ rte_hash_cuckoo_move_insert_mw_tm(const struct rte_hash *h,
while (try < RTE_HASH_TSX_MAX_RETRY) {
status = rte_xbegin();
if (likely(status == RTE_XBEGIN_STARTED)) {
+ /* In case empty slot was gone before entering TSX */
+ if (curr_bkt->key_idx[curr_slot] != EMPTY_SLOT)
+ rte_xabort(RTE_XABORT_CUCKOO_PATH_INVALIDED);
while (likely(curr_node->prev != NULL)) {
prev_node = curr_node->prev;
prev_bkt = prev_node->bkt;