[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