[dpdk-dev] [PATCH v3 08/24] rte_ring_generic.h: stack declarations before code

Thomas Monjalon thomas at monjalon.net
Sun May 13 18:47:15 CEST 2018


12/05/2018 03:59, Andy Green:
> /projects/lagopus/src/dpdk/build/include/rte_ring_generic.h:
> In function '__rte_ring_move_prod_head':
> /projects/lagopus/src/dpdk/build/include/rte_ring_generic.h:76:3:
> warning: ISO C90 forbids mixed declarations and code
> [-Wdeclaration-after-statement]
>    const uint32_t cons_tail = r->cons.tail;
>    ^~~~~
> /projects/lagopus/src/dpdk/build/include/rte_ring_generic.h:
> In function '__rte_ring_move_cons_head':
> /projects/lagopus/src/dpdk/build/include/rte_ring_generic.h:147:3:
> warning: ISO C90 forbids mixed declarations and code
> [-Wdeclaration-after-statement]
>    const uint32_t prod_tail = r->prod.tail;

The fix line is:
Fixes: 0dfc98c507b1 ("ring: separate out head index manipulation")

But I wonder why it was done like this. Maybe there is a hidden reason.
Bruce? Olivier?

> Signed-off-by: Andy Green <andy at warmcat.com>
[...]
> --- a/lib/librte_ring/rte_ring_generic.h
> +++ b/lib/librte_ring/rte_ring_generic.h
> @@ -73,14 +73,13 @@ __rte_ring_move_prod_head(struct rte_ring *r, int is_sp,
>  		 */
>  		rte_smp_rmb();
>  
> -		const uint32_t cons_tail = r->cons.tail;
>  		/*
>  		 *  The subtraction is done between two unsigned 32bits value
>  		 * (the result is always modulo 32 bits even if we have
>  		 * *old_head > cons_tail). So 'free_entries' is always between 0
>  		 * and capacity (which is < size).
>  		 */
> -		*free_entries = (capacity + cons_tail - *old_head);
> +		*free_entries = (capacity + r->cons.tail - *old_head);





More information about the dev mailing list