RE: [PATCH 11/31] nds32: Atomic operations
From: <hidden>
Date: 2017-11-08 10:08:31
Also in:
linux-arch, lkml
-----Original Message----- From: arndbergmann@gmail.com [mailto:arndbergmann@gmail.com] 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 [off-list ref] wrote:quoted
From: Greentime Hu <redacted> Signed-off-by: Vincent Chen <redacted> Signed-off-by: Greentime Hu <redacted> --- 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 mode100644quoted
arch/nds32/include/asm/spinlock.hquoted
diff --git a/arch/nds32/include/asm/spinlock.hb/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.quoted
+#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.