[PATCH v5 20/35] net/intel: write descriptors using non-volatile pointers

Morten Brørup mb at smartsharesystems.com
Wed Feb 11 22:14:20 CET 2026


> +static inline void
> +write_txd(volatile void *txd, uint64_t qw0, uint64_t qw1)
> +{
> +	/* we use an aligned structure and cast away the volatile to
> allow the compiler
> +	 * to opportunistically optimize the two 64-bit writes as a
> single 128-bit write.
> +	 */
> +	__rte_aligned(16) struct txdesc {
> +		uint64_t qw0, qw1;

The documentation for __rte_aligned() says [1] it must be between the "struct" keyword and the name of the structure.
I.e. it should be:
struct __rte_aligned(16) txdesc {

[1]: https://elixir.bootlin.com/dpdk/v25.11/source/lib/eal/include/rte_common.h#L109

> +	} *txdesc = RTE_CAST_PTR(struct txdesc *, txd);
> +	txdesc->qw0 = rte_cpu_to_le_64(qw0);
> +	txdesc->qw1 = rte_cpu_to_le_64(qw1);
> +}




More information about the dev mailing list