"Christopher M. Riedl" <c...@informatik.wtf> writes: > diff --git a/arch/powerpc/include/asm/spinlock.h > b/arch/powerpc/include/asm/spinlock.h > index 0a8270183770..6aed8a83b180 100644 > --- a/arch/powerpc/include/asm/spinlock.h > +++ b/arch/powerpc/include/asm/spinlock.h > @@ -124,6 +122,22 @@ static inline bool is_shared_processor(void) > #endif > } > > +static inline void spin_yield(arch_spinlock_t *lock) > +{ > + if (is_shared_processor()) > + splpar_spin_yield(lock); > + else > + barrier(); > +} ... > static inline void arch_spin_lock(arch_spinlock_t *lock) > { > while (1) { > @@ -132,7 +146,7 @@ static inline void arch_spin_lock(arch_spinlock_t *lock) > do { > HMT_low(); > if (is_shared_processor()) > - __spin_yield(lock); > + spin_yield(lock);
This leaves us with a double test of is_shared_processor() doesn't it? cheers