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

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

From: Arnd Bergmann <arnd@arndb.de>
Date: 2017-11-08 08:54:31
Also in: linux-arch, lkml

On Wed, Nov 8, 2017 at 6:54 AM, Greentime Hu [off-list ref] wrote:
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 arch/nds32/include/asm/spinlock.h
quoted hunk ↗ jump to hunk
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.

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help