powerpc: Redefine HMT_xxx macros as empty on PPC32
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Wed, 25 Aug 2021 13:34:45 +0000 (13:34 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 26 Aug 2021 14:56:52 +0000 (00:56 +1000)
HMT_xxx macros are macros for adjusting thread priority
(hardware multi-threading) are macros inherited from PPC64
via commit 5f7c690728ac ("[PATCH] powerpc: Merged ppc_asm.h")

Those instructions are pointless on PPC32, but some common
fonctions like arch_cpu_idle() use them.

So make them empty on PPC32 to avoid those instructions.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/c5a07fadea33d640ad10cecf0ac8faaec1c524e0.1629898474.git.christophe.leroy@csgroup.eu
arch/powerpc/include/asm/vdso/processor.h

index e072577..8d79f99 100644 (file)
@@ -5,12 +5,21 @@
 #ifndef __ASSEMBLY__
 
 /* Macros for adjusting thread priority (hardware multi-threading) */
+#ifdef CONFIG_PPC64
 #define HMT_very_low()         asm volatile("or 31, 31, 31     # very low priority")
 #define HMT_low()              asm volatile("or 1, 1, 1        # low priority")
 #define HMT_medium_low()       asm volatile("or 6, 6, 6        # medium low priority")
 #define HMT_medium()           asm volatile("or 2, 2, 2        # medium priority")
 #define HMT_medium_high()      asm volatile("or 5, 5, 5        # medium high priority")
 #define HMT_high()             asm volatile("or 3, 3, 3        # high priority")
+#else
+#define HMT_very_low()
+#define HMT_low()
+#define HMT_medium_low()
+#define HMT_medium()
+#define HMT_medium_high()
+#define HMT_high()
+#endif
 
 #ifdef CONFIG_PPC64
 #define cpu_relax()    do { HMT_low(); HMT_medium(); barrier(); } while (0)