Thread (105 messages) flat view 105 messages, 14 authors, 2017-11-22

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 mode
100644
quoted
arch/nds32/include/asm/spinlock.h
quoted
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.
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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help