From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.warmcat.com (mail.warmcat.com [163.172.24.82]) by dpdk.org (Postfix) with ESMTP id 3E4FB1BC4D for ; Mon, 14 May 2018 01:22:05 +0200 (CEST) To: Thomas Monjalon Cc: dev@dpdk.org, bruce.richardson@intel.com, olivier.matz@6wind.com References: <152609021699.121661.5295227351721865436.stgit@localhost.localdomain> <152609036246.121661.18385114679529023835.stgit@localhost.localdomain> <1908380.h0rCPQG6nq@xps> From: Andy Green Message-ID: <2c8be5ff-70ef-6081-31f5-bcbb8a0b1a18@warmcat.com> Date: Mon, 14 May 2018 07:21:52 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 In-Reply-To: <1908380.h0rCPQG6nq@xps> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v3 08/24] rte_ring_generic.h: stack declarations before code X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 May 2018 23:22:05 -0000 On 05/14/2018 12:47 AM, Thomas Monjalon wrote: > 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") OK... people can just use git blame at the time they want to know this though. > But I wonder why it was done like this. Maybe there is a hidden reason. > Bruce? Olivier? It's not crazy to do it for clarity, or when you thought there'd be more uses of the calculation. At any rate, I don't see any openings for it to affect the code changing it. -Andy >> 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); > > >