From: Nicholas Piggin <npig...@gmail.com>

Signed-off-by: Nicholas Piggin <npig...@gmail.com>
---
 arch/powerpc/include/asm/processor.h | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/arch/powerpc/include/asm/processor.h 
b/arch/powerpc/include/asm/processor.h
index c49165a7439c..832775771bd3 100644
--- a/arch/powerpc/include/asm/processor.h
+++ b/arch/powerpc/include/asm/processor.h
@@ -428,6 +428,26 @@ static inline unsigned long __pack_fe01(unsigned int 
fpmode)
 
 #ifdef CONFIG_PPC64
 #define cpu_relax()    do { HMT_low(); HMT_medium(); barrier(); } while (0)
+
+#define spin_begin()   HMT_low()
+
+#define spin_cpu_relax()       barrier()
+
+#define spin_cpu_yield()       spin_cpu_relax()
+
+#define spin_end()     HMT_medium()
+
+#define spin_until_cond(cond)                                  \
+do {                                                           \
+       if (unlikely(!(cond))) {                                \
+               spin_begin();                                   \
+               do {                                            \
+                       spin_cpu_relax();                       \
+               } while (!(cond));                              \
+               spin_end();                                     \
+       }                                                       \
+} while (0)
+
 #else
 #define cpu_relax()    barrier()
 #endif
-- 
2.7.4

Reply via email to