should break out of loop when rte_atomic64_cmpset() retruns non-zero. Fixes: ff2863570fcc ("eal: introduce atomic exchange operation")
Signed-off-by: Konstantin Ananyev <konstantin.anan...@intel.com> --- lib/librte_eal/common/include/arch/x86/rte_atomic_32.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_eal/common/include/arch/x86/rte_atomic_32.h b/lib/librte_eal/common/include/arch/x86/rte_atomic_32.h index 8d711b6f6..a932f3540 100644 --- a/lib/librte_eal/common/include/arch/x86/rte_atomic_32.h +++ b/lib/librte_eal/common/include/arch/x86/rte_atomic_32.h @@ -105,7 +105,7 @@ rte_atomic64_exchange(volatile uint64_t *dest, uint64_t val) do { old = *dest; - } while (rte_atomic64_cmpset(dest, old, val)); + } while (rte_atomic64_cmpset(dest, old, val) == 0); return old; } -- 2.13.6