From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konstantin Ananyev Subject: [PATCH] x86: fix atomic exchange for 32-bit Date: Wed, 2 May 2018 14:58:26 +0100 Message-ID: <1525269506-18710-1-git-send-email-konstantin.ananyev@intel.com> Cc: Konstantin Ananyev Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id B0472DD2 for ; Wed, 2 May 2018 15:58:31 +0200 (CEST) To: dev@dpdk.org To: dev@dpdk.org List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" should break out of loop when rte_atomic64_cmpset() retruns non-zero. Fixes: ff2863570fcc ("eal: introduce atomic exchange operation") Signed-off-by: Konstantin Ananyev --- 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