From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jianbo Liu Subject: Re: [PATCH 1/3] eal/arm64: remove the braces {} for dmb(), dsb() Date: Thu, 9 Nov 2017 11:21:46 +0800 Message-ID: <20171109032145.GA26939@arm.com> 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> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable 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: Jia He Return-path: Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30045.outbound.protection.outlook.com [40.107.3.45]) by dpdk.org (Postfix) with ESMTP id 68EA01B23C for ; Thu, 9 Nov 2017 04:22:59 +0100 (CET) Content-Disposition: inline In-Reply-To: <028263d0-44de-bd0c-c495-081588a0ad20@gmail.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" 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) > >>>=C2=A0=C2=A0=C2=A0=C2=A0rte_smp_rmb(); > >>>else > >>>=C2=A0=C2=A0=C2=A0=C2=A0rte_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 > >>>--- > >>>=C2=A0 lib/librte_eal/common/include/arch/arm/rte_atomic_64.h | 4 ++-- > >>>=C2=A0 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" { > >>>=C2=A0 #include "generic/rte_atomic.h" > >>>=C2=A0 -#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) > >=C2=A0=C2=A0=C2=A0 rte_smp_rmb(); > >else > >=C2=A0=C2=A0=C2=A0 anything(); > > Sorry, why not use two different functions as your conditions passed in are fixed in the calling functions. > >will be like below after precompiling: > >if (condition) > >=C2=A0=C2=A0=C2=A0 asm volatile("dsb " "ld" : : : "memory");; > >else > >=C2=A0=C2=A0=C2=A0 anything(); > >Then, the same error - error: 'else' without a previous 'if' > > > Ignore my words above=EF=BC=8Cthanks > sorry for the inconvenience. > And I've sent out v4 in this mail thread. The ";" has been removed. > If no more comments, I will send out v5 (2 patch sets for 17 and 18) > > -- > Cheers, > Jia > > > -- > Cheers, > Jia > -- IMPORTANT NOTICE: The contents of this email and any attachments are confid= ential and may also be privileged. If you are not the intended recipient, p= lease notify the sender immediately and do not disclose the contents to any= other person, use it for any purpose, or store or copy the information in = any medium. Thank you.