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

Jia He hejianet at gmail.com
Thu Nov 9 05:43:20 CET 2017


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 <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)
>>> 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


More information about the dev mailing list