projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'gpio-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux...
[cascardo/linux.git]
/
arch
/
sparc
/
include
/
asm
/
spinlock_32.h
diff --git
a/arch/sparc/include/asm/spinlock_32.h
b/arch/sparc/include/asm/spinlock_32.h
index
bcc98fc
..
d9c5876
100644
(file)
--- a/
arch/sparc/include/asm/spinlock_32.h
+++ b/
arch/sparc/include/asm/spinlock_32.h
@@
-9,12
+9,15
@@
#ifndef __ASSEMBLY__
#include <asm/psr.h>
#ifndef __ASSEMBLY__
#include <asm/psr.h>
+#include <asm/barrier.h>
#include <asm/processor.h> /* for cpu_relax */
#define arch_spin_is_locked(lock) (*((volatile unsigned char *)(lock)) != 0)
#include <asm/processor.h> /* for cpu_relax */
#define arch_spin_is_locked(lock) (*((volatile unsigned char *)(lock)) != 0)
-#define arch_spin_unlock_wait(lock) \
- do { while (arch_spin_is_locked(lock)) cpu_relax(); } while (0)
+static inline void arch_spin_unlock_wait(arch_spinlock_t *lock)
+{
+ smp_cond_load_acquire(&lock->lock, !VAL);
+}
static inline void arch_spin_lock(arch_spinlock_t *lock)
{
static inline void arch_spin_lock(arch_spinlock_t *lock)
{