Displaying 2 results from an estimated 2 matches for "smp_cond_load_relaxed".
2020 Jul 24
0
[PATCH v4 6/6] powerpc: implement smp_cond_load_relaxed
...hanged, 14 insertions(+)
diff --git a/arch/powerpc/include/asm/barrier.h b/arch/powerpc/include/asm/barrier.h
index 123adcefd40f..9b4671d38674 100644
--- a/arch/powerpc/include/asm/barrier.h
+++ b/arch/powerpc/include/asm/barrier.h
@@ -76,6 +76,20 @@ do { \
___p1; \
})
+#define smp_cond_load_relaxed(ptr, cond_expr) ({ \
+ typeof(ptr) __PTR = (ptr); \
+ __unqual_scalar_typeof(*ptr) VAL; \
+ VAL = READ_ONCE(*__PTR); \
+ if (unlikely(!(cond_expr))) { \
+ spin_begin(); \
+ do { \
+ VAL = READ_ONCE(*__PTR); \
+ } while (!(cond_expr)); \
+ spin_end(); \
+ } \...
2020 Jul 24
8
[PATCH v4 0/6] powerpc: queued spinlocks and rwlocks
...ions to their own file
powerpc: move spinlock implementation to simple_spinlock
powerpc/64s: implement queued spinlocks and rwlocks
powerpc/pseries: implement paravirt qspinlocks for SPLPAR
powerpc/qspinlock: optimised atomic_try_cmpxchg_lock that adds the
lock hint
powerpc: implement smp_cond_load_relaxed
arch/powerpc/Kconfig | 15 +
arch/powerpc/include/asm/Kbuild | 1 +
arch/powerpc/include/asm/atomic.h | 28 ++
arch/powerpc/include/asm/barrier.h | 14 +
arch/powerpc/include/asm/paravirt.h | 87 +++++
arch/powerpc/incl...