On Mon, 22 Jun 2026 19:10:55 +0800
Zaiyu Wang <[email protected]> wrote:

> diff --git a/drivers/net/txgbe/txgbe_rxtx.c b/drivers/net/txgbe/txgbe_rxtx.c
> index e2cd9b8841..d6efb3b8cc 100644
> --- a/drivers/net/txgbe/txgbe_rxtx.c
> +++ b/drivers/net/txgbe/txgbe_rxtx.c
> @@ -98,12 +98,11 @@ txgbe_tx_free_bufs(struct txgbe_tx_queue *txq)
>               if (tx_last_dd >= txq->nb_tx_desc)
>                       tx_last_dd -= txq->nb_tx_desc;
>  
> -             volatile uint16_t head = (uint16_t)*txq->headwb_mem;
> +             uint32_t h = rte_atomic_load_explicit(txq->headwb_mem,
> +                                                   rte_memory_order_acquire);

This will fail build on clang since txq->headwb_mem is declared as volatile
not _Atomic type.

Please fix, and resubmit both patch series.

$ CC=clang-21 meson setup build -Denable_stdatomic=true
$ ninja -C build
../drivers/net/txgbe/txgbe_rxtx.c:101:16: error: address argument to atomic 
operation must be a pointer to _Atomic type ('volatile uint32_t *' (aka 
'volatile unsigned int *') invalid)
  101 |                 uint32_t h = rte_atomic_load_explicit(txq->headwb_mem,
      |                              ^                        ~~~~~~~~~~~~~~~
../lib/eal/include/rte_stdatomic.h:69:2: note: expanded from macro 
'rte_atomic_load_explicit'
   69 |         atomic_load_explicit(ptr, memorder)
      |         ^                    ~~~
/usr/lib/llvm-21/lib/clang/21/include/stdatomic.h:145:30: note: expanded from 
macro 'atomic_load_explicit'
  145 | #define atomic_load_explicit __c11_atomic_load
      |                              ^
../drivers/net/txgbe/txgbe_rxtx.c:647:16: error: address argument to atomic 
operation must be a pointer to _Atomic type ('volatile uint32_t *' (aka 
'volatile unsigned int *') invalid)
  647 |                 uint32_t h = rte_atomic_load_explicit(txq->headwb_mem,
      |                              ^                        ~~~~~~~~~~~~~~~
../lib/eal/include/rte_stdatomic.h:69:2: note: expanded from macro 
'rte_atomic_load_explicit'
   69 |         atomic_load_explicit(ptr, memorder)
      |         ^                    ~~~
/usr/lib/llvm-21/lib/clang/21/include/stdatomic.h:145:30: note: expanded from 
macro 'atomic_load_explicit'
  145 | #define atomic_load_explicit __c11_atomic_load
      |                              ^
2 errors generated.

Reply via email to