[PATCH 01/17] powerpc/qspinlock: powerpc qspinlock implementation
Nicholas Piggin
npiggin at gmail.com
Thu Nov 10 20:09:34 AEDT 2022
On Thu Nov 10, 2022 at 10:35 AM AEST, Jordan Niethe wrote:
> On Thu, 2022-07-28 at 16:31 +1000, Nicholas Piggin wrote:
> <snip>
> > -#define queued_spin_lock queued_spin_lock
> >
> > -static inline void queued_spin_unlock(struct qspinlock *lock)
> > +static __always_inline int queued_spin_trylock(struct qspinlock *lock)
> > {
> > - if (!IS_ENABLED(CONFIG_PARAVIRT_SPINLOCKS) || !is_shared_processor())
> > - smp_store_release(&lock->locked, 0);
> > - else
> > - __pv_queued_spin_unlock(lock);
> > + if (atomic_cmpxchg_acquire(&lock->val, 0, 1) == 0)
> > + return 1;
> > + return 0;
>
> optional style nit: return (atomic_cmpxchg_acquire(&lock->val, 0, 1) == 0);
>
> [resend as utf-8, not utf-7]
Thanks for the thorough review, apologies again it took me so long to
get back to.
I'm not completely sold on this. I guess it's already side-effects in a
control flow statement though... Maybe I will change it, not sure.
Thanks,
Nick
More information about the Linuxppc-dev
mailing list