The driver debug code uses local atomic wrappers; convert them to DPDK rte_atomic wrappers for C11 stdatomic.
Signed-off-by: Stephen Hemminger <[email protected]> --- drivers/common/dpaax/compat.h | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/drivers/common/dpaax/compat.h b/drivers/common/dpaax/compat.h index d0635255da..793616e095 100644 --- a/drivers/common/dpaax/compat.h +++ b/drivers/common/dpaax/compat.h @@ -365,19 +365,14 @@ static inline unsigned long get_zeroed_page(gfp_t __foo __rte_unused) #define spin_lock_irqsave(x, f) spin_lock_irq(x) #define spin_unlock_irqrestore(x, f) spin_unlock_irq(x) -#define atomic_t rte_atomic32_t -#define atomic_read(v) rte_atomic32_read(v) -#define atomic_set(v, i) rte_atomic32_set(v, i) - -#define atomic_inc(v) rte_atomic32_add(v, 1) -#define atomic_dec(v) rte_atomic32_sub(v, 1) - -#define atomic_inc_and_test(v) rte_atomic32_inc_and_test(v) -#define atomic_dec_and_test(v) rte_atomic32_dec_and_test(v) - -#define atomic_inc_return(v) rte_atomic32_add_return(v, 1) -#define atomic_dec_return(v) rte_atomic32_sub_return(v, 1) -#define atomic_sub_and_test(i, v) (rte_atomic32_sub_return(v, i) == 0) +typedef RTE_ATOMIC(uint32_t) atomic_t; + +#define atomic_read(v) rte_atomic_load_explicit((v), rte_memory_order_relaxed) +#define atomic_set(v, i) rte_atomic_store_explicit((v), (i), rte_memory_order_relaxed) +#define atomic_inc(v) ((void)rte_atomic_fetch_add_explicit((v), 1, rte_memory_order_seq_cst)) +#define atomic_dec(v) ((void)rte_atomic_fetch_sub_explicit((v), 1, rte_memory_order_seq_cst)) +#define atomic_inc_and_test(v) (rte_atomic_fetch_add_explicit((v), 1, rte_memory_order_seq_cst) == -1) +#define atomic_dec_and_test(v) (rte_atomic_fetch_sub_explicit((v), 1, rte_memory_order_seq_cst) == 1) /* Interface name len*/ #define IF_NAME_MAX_LEN 16 -- 2.53.0

