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 <a...@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);