The atomic wrappers here are easily converted to stdatomic. Drop any unused macros.
Signed-off-by: Stephen Hemminger <[email protected]> --- drivers/bus/fslmc/qbman/include/compat.h | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/drivers/bus/fslmc/qbman/include/compat.h b/drivers/bus/fslmc/qbman/include/compat.h index 5a57bd8ed1..9c87f0b639 100644 --- a/drivers/bus/fslmc/qbman/include/compat.h +++ b/drivers/bus/fslmc/qbman/include/compat.h @@ -81,18 +81,13 @@ do { \ #define dma_wmb() rte_io_wmb() -#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) #endif /* HEADER_COMPAT_H */ -- 2.53.0

