17/07/2020 16:28, Viacheslav Ovsiienko:
> For naw the rte_atomic128_cmp_exchange() is available on x86-64

Typo: now

> and ARM64 architectures. The patch fixes the compilation condition
> for the code using this atomic transaction.

What is fixed exactly?
How "not (ppc or 32)" is different of "x86_64 or arm64"?

> -#if defined(RTE_ARCH_PPC_64) || defined(RTE_ARCH_32)
> +#if defined(RTE_ARCH_X86_64) || defined(RTE_ARCH_ARM64)
> +     rte_int128_t src;
> +
> +     memset(&src, 0, sizeof(src));
> +     *ts = src;
> +     /* if (*from == *ts) *from = *src else *ts = *from; */
> +     rte_atomic128_cmp_exchange(from, ts, &src, 0,
> +                                __ATOMIC_RELAXED, __ATOMIC_RELAXED);
> +#else
>       rte_atomic64_t *cqe = (rte_atomic64_t *)from;
>  
>       /* Power architecture does not support 16B compare-and-swap. */
> @@ -665,14 +673,6 @@
>               ps[1] = op;
>               return;
>       }
> -#else
> -     rte_int128_t src;
> -
> -     memset(&src, 0, sizeof(src));
> -     *ts = src;
> -     /* if (*from == *ts) *from = *src else *ts = *from; */
> -     rte_atomic128_cmp_exchange(from, ts, &src, 0,
> -                                __ATOMIC_RELAXED, __ATOMIC_RELAXED);
>  #endif



Reply via email to