[dpdk-dev] [PATCH] x86: fix atomic exchange for 32-bit
Konstantin Ananyev
konstantin.ananyev at intel.com
Wed May 2 15:58:26 CEST 2018
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.ananyev at 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
More information about the dev
mailing list