From: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> This will save one SYNCW on Octeon and improve tight uncontended spinlock loop performance by 17%. Signed-off-by: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> --- arch/mips/include/asm/atomic.h | 3 +++ arch/mips/include/asm/cmpxchg.h | 2 ++ 2 files changed, 5 insertions(+) diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h index f904084..a4e5116 100644 --- a/arch/mips/include/asm/atomic.h +++ b/arch/mips/include/asm/atomic.h @@ -264,4 +264,7 @@ ATOMIC_SIP_OP(atomic64, s64, dsubu, lld, scd) #undef ATOMIC_SIP_OP +#define atomic_cmpxchg_relaxed(v, o, n) \ + (cmpxchg_relaxed(&((v)->counter), (o), (n))) + #endif /* _ASM_ATOMIC_H */ diff --git a/arch/mips/include/asm/cmpxchg.h b/arch/mips/include/asm/cmpxchg.h index 5b0b3a6..620f01a 100644 --- a/arch/mips/include/asm/cmpxchg.h +++ b/arch/mips/include/asm/cmpxchg.h @@ -182,6 +182,8 @@ unsigned long __cmpxchg(volatile void *ptr, unsigned long old, (unsigned long)(__typeof__(*(ptr)))(new), \ sizeof(*(ptr)))) +#define cmpxchg_relaxed cmpxchg_local + #define cmpxchg(ptr, old, new) \ ({ \ __typeof__(*(ptr)) __res; \ -- 2.10.2