From 72e69d801b235f40b6c71a7d4f6087e2fa5b02dc Mon Sep 17 00:00:00 2001 From: David Christensen Date: Tue, 15 Oct 2019 14:16:14 -0700 Subject: [PATCH] eal/ppc: fix 64-bit atomic exchange operation The rte_atomic64_exchange operation for ppc_64 incorrectly linked back to a 32 bit generic operation (__atomic_exchange_4) rather than the 64 bit generic operation (__atomic_exchange_8). As a result, applications that used rte_eth_link_get_nowait() would only receive the link speed, they would not receive the link state, link duplex, or link autoneg properties. Fixes: ff2863570fcc ("eal: introduce atomic exchange operation") Cc: stable@dpdk.org Signed-off-by: David Christensen Reviewed-by: David Marchand --- lib/librte_eal/common/include/arch/ppc_64/rte_atomic.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_atomic.h b/lib/librte_eal/common/include/arch/ppc_64/rte_atomic.h index b13a80de4a..7e3e13118c 100644 --- a/lib/librte_eal/common/include/arch/ppc_64/rte_atomic.h +++ b/lib/librte_eal/common/include/arch/ppc_64/rte_atomic.h @@ -401,7 +401,7 @@ static inline void rte_atomic64_clear(rte_atomic64_t *v) static inline uint64_t rte_atomic64_exchange(volatile uint64_t *dst, uint64_t val) { - return __atomic_exchange_4(dst, val, __ATOMIC_SEQ_CST); + return __atomic_exchange_8(dst, val, __ATOMIC_SEQ_CST); } #endif -- 2.20.1