From: Michael Ellerman Date: Wed, 15 Jan 2014 07:14:29 +0000 (+1100) Subject: powerpc: Implement arch_spin_is_locked() using arch_spin_value_unlocked() X-Git-Tag: submit/tizen/20160607.132125~5241^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7179ba52889bef7e5e23f72908270e1ab2b7fc6f;p=sdk%2Femulator%2Femulator-kernel.git powerpc: Implement arch_spin_is_locked() using arch_spin_value_unlocked() At a glance these are just the inverse of each other. The one subtlety is that arch_spin_value_unlocked() takes the lock by value, rather than as a pointer, which is important for the lockref code. On the other hand arch_spin_is_locked() doesn't really care, so implement it in terms of arch_spin_value_unlocked(). Signed-off-by: Michael Ellerman Signed-off-by: Benjamin Herrenschmidt --- diff --git a/arch/powerpc/include/asm/spinlock.h b/arch/powerpc/include/asm/spinlock.h index 5162f8c..a30ef69 100644 --- a/arch/powerpc/include/asm/spinlock.h +++ b/arch/powerpc/include/asm/spinlock.h @@ -28,8 +28,6 @@ #include #include -#define arch_spin_is_locked(x) ((x)->slock != 0) - #ifdef CONFIG_PPC64 /* use 0x800000yy when locked, where yy == CPU number */ #ifdef __BIG_ENDIAN__ @@ -59,6 +57,11 @@ static __always_inline int arch_spin_value_unlocked(arch_spinlock_t lock) return lock.slock == 0; } +static inline int arch_spin_is_locked(arch_spinlock_t *lock) +{ + return !arch_spin_value_unlocked(*lock); +} + /* * This returns the old value in the lock, so we succeeded * in getting the lock if the return value is 0.