[dpdk-dev] [PATCH 1/3] eal/arm64: remove the braces {} for dmb(), dsb()

Bruce Richardson bruce.richardson at intel.com
Wed Nov 8 11:28:14 CET 2017


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 <hejianet at gmail.com>
> Signed-off-by: jia.he at 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)

	Regards,
	/Bruce


More information about the dev mailing list