From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jia He Subject: Re: [PATCH 1/3] eal/arm64: remove the braces {} for dmb(), dsb() Date: Thu, 9 Nov 2017 12:43:20 +0800 Message-ID: References: <1510121832-16439-1-git-send-email-hejianet@gmail.com> <20171108102814.GA7552@bricha3-MOBL3.ger.corp.intel.com> <9086316b-c16b-c42b-2d85-9b01fa2f66e1@gmail.com> <028263d0-44de-bd0c-c495-081588a0ad20@gmail.com> <20171109032145.GA26939@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Cc: Bruce Richardson , jerin.jacob@caviumnetworks.com, dev@dpdk.org, olivier.matz@6wind.com, konstantin.ananyev@intel.com, hemant.agrawal@nxp.com, jia.he@hxt-semitech.com To: Jianbo Liu Return-path: Received: from mail-pg0-f65.google.com (mail-pg0-f65.google.com [74.125.83.65]) by dpdk.org (Postfix) with ESMTP id 1D07C1B1EF for ; Thu, 9 Nov 2017 05:45:33 +0100 (CET) Received: by mail-pg0-f65.google.com with SMTP id l19so1211904pgo.2 for ; Wed, 08 Nov 2017 20:45:32 -0800 (PST) In-Reply-To: <20171109032145.GA26939@arm.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Jianbo On 11/9/2017 11:21 AM, Jianbo Liu Wrote: > The 11/09/2017 11:14, Jia He wrote: >> >> On 11/9/2017 9:22 AM, Jia He Wrote: >>> Hi Bruce >>> >>> >>> On 11/8/2017 6:28 PM, Bruce Richardson Wrote: >>>> On Wed, Nov 08, 2017 at 06:17:10AM +0000, Jia He wrote: >>>>> for the code as follows: >>>>> if (condition) >>>>>     rte_smp_rmb(); >>>>> else >>>>>     rte_smp_wmb(); >>>>> Without this patch, compiler will report this error: >>>>> error: 'else' without a previous 'if' >>>>> >>>>> Signed-off-by: Jia He >>>>> Signed-off-by: jia.he@hxt-semitech.com >>>>> --- >>>>>   lib/librte_eal/common/include/arch/arm/rte_atomic_64.h | 4 ++-- >>>>>   1 file changed, 2 insertions(+), 2 deletions(-) >>>>> >>>>> diff --git >>>>> a/lib/librte_eal/common/include/arch/arm/rte_atomic_64.h >>>>> b/lib/librte_eal/common/include/arch/arm/rte_atomic_64.h >>>>> index 0b70d62..38c3393 100644 >>>>> --- a/lib/librte_eal/common/include/arch/arm/rte_atomic_64.h >>>>> +++ b/lib/librte_eal/common/include/arch/arm/rte_atomic_64.h >>>>> @@ -43,8 +43,8 @@ extern "C" { >>>>>   #include "generic/rte_atomic.h" >>>>>   -#define dsb(opt) { asm volatile("dsb " #opt : : : "memory"); } >>>>> -#define dmb(opt) { asm volatile("dmb " #opt : : : "memory"); } >>>>> +#define dsb(opt) asm volatile("dsb " #opt : : : "memory"); >>>>> +#define dmb(opt) asm volatile("dmb " #opt : : : "memory"); >>>> Need to remove the trailing ";" I too I think. >>>> Alternatively, to keep the braces, the standard practice is to use >>>> do { ... } while(0) >>> If trailing ";" is not removed >>> the code: >>> if (condition) >>>     rte_smp_rmb(); >>> else >>>     anything(); >>> > Sorry, why not use two different functions as your conditions passed in > are fixed in the calling functions. Do you mean to split update_tail() into update_tail_enqueue() and update_tail_dequeue()? Cheers, Jia