Re: [PATCH 01/17] powerpc/qspinlock: powerpc qspinlock implementation
From: Jordan Niethe <hidden>
Date: 2022-11-10 00:36:25
From: Jordan Niethe <hidden>
Date: 2022-11-10 00:36:25
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]