Thread (78 messages) 78 messages, 4 authors, 2022-11-10

Re: [PATCH 01/17] powerpc/qspinlock: powerpc qspinlock implementation

From: Christophe Leroy <hidden>
Date: 2022-11-10 06:38:25


Le 10/11/2022 à 01:35, Jordan Niethe a écrit :
On Thu, 2022-07-28 at 16:31 +1000, Nicholas Piggin wrote:
<snip>
quoted
-#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);
No parenthesis.
No == 0

Should be :

	return !atomic_cmpxchg_acquire(&lock->val, 0, 1);
[resend as utf-8, not utf-7]
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help