[PATCH 01/17] powerpc/qspinlock: powerpc qspinlock implementation
Jordan Niethe
jniethe5 at gmail.com
Thu Nov 10 11:35:21 AEDT 2022
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]
More information about the Linuxppc-dev
mailing list