diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-08-31 18:01:08 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-08-31 18:01:08 -0400 |
commit | 7b8067d37058ec01889513e16033fb6de72a98ce (patch) | |
tree | 697e66a89f37eeaf223f1e62d4ac1a5b3b6e6d90 | |
parent | 9551bf292d67e9070409b59685cdb8fc5437ec3a (diff) | |
parent | 8f8dcb3f7fe4febbfa96e64d4ad47de958c5cc34 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha
Pull alpha update from Matt Turner:
"A single patch for alpha, one that enables ARCH_USE_CMPXCHG_LOCKREF
and offers around an 8% performance improvement on a little benchmark
that you wrote"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
alpha: select CONFIG_ARCH_USE_CMPXCHG_LOCKREF.
-rw-r--r-- | arch/alpha/Kconfig | 1 | ||||
-rw-r--r-- | arch/alpha/include/asm/spinlock.h | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index bf9e9d3b3792..f515a4dbf7a0 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig | |||
@@ -3,6 +3,7 @@ config ALPHA | |||
3 | default y | 3 | default y |
4 | select ARCH_MIGHT_HAVE_PC_PARPORT | 4 | select ARCH_MIGHT_HAVE_PC_PARPORT |
5 | select ARCH_MIGHT_HAVE_PC_SERIO | 5 | select ARCH_MIGHT_HAVE_PC_SERIO |
6 | select ARCH_USE_CMPXCHG_LOCKREF | ||
6 | select HAVE_AOUT | 7 | select HAVE_AOUT |
7 | select HAVE_IDE | 8 | select HAVE_IDE |
8 | select HAVE_OPROFILE | 9 | select HAVE_OPROFILE |
diff --git a/arch/alpha/include/asm/spinlock.h b/arch/alpha/include/asm/spinlock.h index 37b570d01202..fed9c6f44c19 100644 --- a/arch/alpha/include/asm/spinlock.h +++ b/arch/alpha/include/asm/spinlock.h | |||
@@ -16,6 +16,11 @@ | |||
16 | #define arch_spin_unlock_wait(x) \ | 16 | #define arch_spin_unlock_wait(x) \ |
17 | do { cpu_relax(); } while ((x)->lock) | 17 | do { cpu_relax(); } while ((x)->lock) |
18 | 18 | ||
19 | static inline int arch_spin_value_unlocked(arch_spinlock_t lock) | ||
20 | { | ||
21 | return lock.lock == 0; | ||
22 | } | ||
23 | |||
19 | static inline void arch_spin_unlock(arch_spinlock_t * lock) | 24 | static inline void arch_spin_unlock(arch_spinlock_t * lock) |
20 | { | 25 | { |
21 | mb(); | 26 | mb(); |