Thread (20 messages) 20 messages, 6 authors, 2023-05-17

Re: [PATCH v2 3/5] locking/arch: Wire up local_try_cmpxchg

From: Peter Zijlstra <peterz@infradead.org>
Date: 2023-04-12 11:35:27
Also in: linux-alpha, linux-arch, linux-mips, linux-perf-users, lkml, loongarch

On Wed, Apr 05, 2023 at 04:17:08PM +0200, Uros Bizjak wrote:
quoted hunk ↗ jump to hunk
diff --git a/arch/powerpc/include/asm/local.h b/arch/powerpc/include/asm/local.h
index bc4bd19b7fc2..45492fb5bf22 100644
--- a/arch/powerpc/include/asm/local.h
+++ b/arch/powerpc/include/asm/local.h
@@ -90,6 +90,17 @@ static __inline__ long local_cmpxchg(local_t *l, long o, long n)
 	return t;
 }
 
+static __inline__ bool local_try_cmpxchg(local_t *l, long *po, long n)
+{
+	long o = *po, r;
+
+	r = local_cmpxchg(l, o, n);
+	if (unlikely(r != o))
+		*po = r;
+
+	return likely(r == o);
+}
+
Why is the ppc one different from the rest? Why can't it use the
try_cmpxchg_local() fallback and needs to have it open-coded?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help