From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH v3 08/24] rte_ring_generic.h: stack declarations before code Date: Sun, 13 May 2018 18:47:15 +0200 Message-ID: <1908380.h0rCPQG6nq@xps> References: <152609021699.121661.5295227351721865436.stgit@localhost.localdomain> <152609036246.121661.18385114679529023835.stgit@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org, bruce.richardson@intel.com, olivier.matz@6wind.com To: Andy Green Return-path: Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by dpdk.org (Postfix) with ESMTP id 3BE951BB47 for ; Sun, 13 May 2018 18:47:17 +0200 (CEST) In-Reply-To: <152609036246.121661.18385114679529023835.stgit@localhost.localdomain> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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/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);