RE: [PATCH 11/31] nds32: Atomic operations

From: vincentc
Date: Wed Nov 08 2017 - 05:08:34 EST


> -----Original Message-----
> From: arndbergmann@xxxxxxxxx [mailto:arndbergmann@xxxxxxxxx] On
> Behalf Of Arnd Bergmann
> Sent: Wednesday, November 08, 2017 4:54 PM
> To: Greentime Hu
> Cc: Greentime Ying-Han Hu(èèæ); Linux Kernel Mailing List; linux-arch;
> Thomas Gleixner; Jason Cooper; Marc Zyngier; Rob Herring; Networking;
> Vincent Ren-Wei Chen(éäç); Palmer Dabbelt
> Subject: Re: [PATCH 11/31] nds32: Atomic operations
>
> On Wed, Nov 8, 2017 at 6:54 AM, Greentime Hu <green.hu@xxxxxxxxx>
> wrote:
> > From: Greentime Hu <greentime@xxxxxxxxxxxxx>
> >
> > Signed-off-by: Vincent Chen <vincentc@xxxxxxxxxxxxx>
> > Signed-off-by: Greentime Hu <greentime@xxxxxxxxxxxxx>
> > ---
> > arch/nds32/include/asm/futex.h | 116 ++++++++++++++++++++++++
> > arch/nds32/include/asm/spinlock.h | 178
> > +++++++++++++++++++++++++++++++++++++
> > 2 files changed, 294 insertions(+)
> > create mode 100644 arch/nds32/include/asm/futex.h create mode
> 100644
> > arch/nds32/include/asm/spinlock.h
>
>
> > diff --git a/arch/nds32/include/asm/spinlock.h
> > b/arch/nds32/include/asm/spinlock.h
> > new file mode 100644
> > index 0000000..dd5fc71
> > --- /dev/null
> > +++ b/arch/nds32/include/asm/spinlock.h
> > @@ -0,0 +1,178 @@
> > +
> > +#define arch_spin_unlock_wait(lock) \
> > + do { while (arch_spin_is_locked(lock)) cpu_relax(); } while
> > +(0)
>
> This was removed from the other architectures in commit
> 952111d7db02 ("arch: Remove spin_unlock_wait() arch-specific definitions")
>
> Please remove this as well.
>
Dear Arnd:

I will remove them in the next version patch.


> Palmer, I see riscv has the same thing, please also add a patch to your tree to
> remove it.
>
> > +#define arch_spin_lock_flags(lock, flags) arch_spin_lock(lock)
> > +
> > +static inline void arch_spin_lock(arch_spinlock_t * lock) {
> > + unsigned long tmp;
> > +
> > + __asm__ __volatile__("1:\n"
> > + "\tllw\t%0, [%1]\n"
> > + "\tbnez\t%0, 1b\n"
> > + "\tmovi\t%0, #0x1\n"
> > + "\tscw\t%0, [%1]\n"
> > + "\tbeqz\t%0, 1b\n"
> > + :"=&r"(tmp)
> > + :"r"(&lock->lock)
> > + :"memory");
>
> The coding style seems inconsistent here, the other inline asm uses real tabs
> instead of \t, and 'asm volatile' is generally preferred over '__asm__
> __volatile__'.
>
> Arnd

OK, I will modify it in the next version patch.

Thanks

Best regards
Vincent
CONFIDENTIALITY NOTICE:

This e-mail (and its attachments) may contain confidential and legally privileged information or information protected from disclosure. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein is strictly prohibited. In this case, please immediately notify the sender by return e-mail, delete the message (and any accompanying documents) and destroy all printed hard copies. Thank you for your cooperation.

Copyright ANDES TECHNOLOGY CORPORATION - All Rights Reserved.