From mboxrd@z Thu Jan 1 00:00:00 1970 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 998AD1B282 for ; Thu, 9 Nov 2017 02:22:20 +0100 (CET) Received: by mail-pg0-f65.google.com with SMTP id o7so3374792pgc.4 for ; Wed, 08 Nov 2017 17:22:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=dWO+eLwxIog1HRHNvEx57cM17Midu7HD5J/DCBfo3D8=; b=ozF0BUx/dZGyaCcQi1vW1bwVkueVg0yIsYxcW2858dduhqQROBVDHxGNf4pgfxIoQb GL5N5URYvgKjp/nB5PKwXSa2jv0qv5chmU62f9lE4ncpa+SRqtFIcpGzyvSSseyJkkiX WbIM07BdYwCvXS2DbrEpMGZ/RtCkJL7mah8RX0cfHOe4T7bietF1EMFm/iOARgtNn+4M LVnGZlUjzfjUQgyy9z6tMnwFIrxTfGJbLzlxaOhM8/9ytSCEcaIsxFI/5htOxx9NE3ux +dT7vWz5nn5rOqeUTbbqd8lPg3G+R4d4O5aF/QJ8xWUgF6jGWQs7TcUjWU251pHMe3xT ZcPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=dWO+eLwxIog1HRHNvEx57cM17Midu7HD5J/DCBfo3D8=; b=RZJ1oc9XhbHD3sGukCnPCHuOP71NL8QsGzyvK6k68s+jcTaw4bCZ894u1/6qFp+rBR wDbCPB5TO7wfiUqwoZbjIy2z52yj7qj/esrhu4VXgDhoTm4+8LxRexbY6PDGDDAdVxZ6 yDx4JEY8P7uapdo7VpVgh6RWXM9zehZquARb7YaDgKrME1v8iNW1M0NcKKfu43HVP9nl CzNLOVHUzdd03tZRZb6G/kbGcZsB/Cz+LUHcmO1rCMn/X6G2EOWjIz9M+XqR+pvKb5n1 a2145uEOYcVdZgD3JJIe8OU1rLgfOIfN/Kskv8lGI8uOy9Hi3YE7IZzi5Fh50T3pdPQn bgSg== X-Gm-Message-State: AJaThX6/gBLLgRJaTH16WLnMmos4bCLyBAsMlpVtzUGLGqZrJRD+DGE9 MJQdxFsbdacEks4XJHizVpY= X-Google-Smtp-Source: ABhQp+QKgsK4FPQPhUdRisiSLFeaYfzYN8iyPXLH5FRmCl4WP6WHPXNCgyaKBPFPsWl5jxbPd0amaw== X-Received: by 10.101.78.5 with SMTP id r5mr2178103pgt.94.1510190539774; Wed, 08 Nov 2017 17:22:19 -0800 (PST) Received: from [0.0.0.0] (67.209.179.165.16clouds.com. [67.209.179.165]) by smtp.gmail.com with ESMTPSA id g7sm10639983pfj.13.2017.11.08.17.22.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 08 Nov 2017 17:22:19 -0800 (PST) To: Bruce Richardson Cc: jerin.jacob@caviumnetworks.com, dev@dpdk.org, olivier.matz@6wind.com, konstantin.ananyev@intel.com, jianbo.liu@arm.com, hemant.agrawal@nxp.com, jia.he@hxt-semitech.com References: <1510121832-16439-1-git-send-email-hejianet@gmail.com> <20171108102814.GA7552@bricha3-MOBL3.ger.corp.intel.com> From: Jia He Message-ID: <9086316b-c16b-c42b-2d85-9b01fa2f66e1@gmail.com> Date: Thu, 9 Nov 2017 09:22:10 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20171108102814.GA7552@bricha3-MOBL3.ger.corp.intel.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH 1/3] eal/arm64: remove the braces {} for dmb(), dsb() 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: Thu, 09 Nov 2017 01:22:20 -0000 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(); will be like below after precompiling: if (condition)     asm volatile("dsb " "ld" : : : "memory");; else     anything(); Then, the same error - error: 'else' without a previous 'if' If you choose do/while(0), yes, no errors from compiler. But the checkpatch will report WARNING: Single statement macros should not use a do {} while (0) loop #11: FILE: lib/librte_eal/common/include/arch/arm/rte_atomic_64.h:46: +#define dsb(opt) do { asm volatile("dsb " #opt : : : "memory"); } while (0) I searched the kernel codes, the marco dsb() didn't use the do/while(0). Which one do you think is better for dpdk? Cheers, Jia