]> Git Repo - J-linux.git/commitdiff
x86/percpu: Introduce raw_cpu_read_long() to reduce ifdeffery
authorUros Bizjak <[email protected]>
Thu, 4 Apr 2024 09:42:03 +0000 (11:42 +0200)
committerIngo Molnar <[email protected]>
Sat, 6 Apr 2024 10:42:17 +0000 (12:42 +0200)
Introduce raw_cpu_read_long() macro to slightly reduce ifdeffery
in <asm/percpu.h>.

No functional changes intended.

Signed-off-by: Uros Bizjak <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Cc: Linus Torvalds <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
arch/x86/include/asm/percpu.h

index d6ff0db32209d21f40a2d4de7ac95b2e77b3a1a7..3bedee1801e2a84e3b0277e9f0b907f5f24ee421 100644 (file)
 #define __force_percpu_prefix  "%%"__stringify(__percpu_seg)":"
 #define __my_cpu_offset                this_cpu_read(this_cpu_off)
 
-#ifdef CONFIG_X86_64
-#define __raw_my_cpu_offset    raw_cpu_read_8(this_cpu_off);
-#else
-#define __raw_my_cpu_offset    raw_cpu_read_4(this_cpu_off);
-#endif
-
 /*
  * Compared to the generic __my_cpu_offset version, the following
  * saves one instruction and avoids clobbering a temp register.
@@ -76,7 +70,7 @@
 #ifndef BUILD_VDSO32_64
 #define arch_raw_cpu_ptr(_ptr)                                 \
 ({                                                             \
-       unsigned long tcp_ptr__ = __raw_my_cpu_offset;          \
+       unsigned long tcp_ptr__ = raw_cpu_read_long(this_cpu_off); \
        tcp_ptr__ += (__force unsigned long)(_ptr);             \
        (typeof(*(_ptr)) __kernel __force *)tcp_ptr__;          \
 })
@@ -563,9 +557,13 @@ do {                                                                       \
 #define this_cpu_xchg_8(pcp, nval)             this_percpu_xchg_op(pcp, nval)
 #define this_cpu_cmpxchg_8(pcp, oval, nval)    percpu_cmpxchg_op(8, volatile, pcp, oval, nval)
 #define this_cpu_try_cmpxchg_8(pcp, ovalp, nval)       percpu_try_cmpxchg_op(8, volatile, pcp, ovalp, nval)
+
+#define raw_cpu_read_long(pcp)         raw_cpu_read_8(pcp)
 #else
 /* There is no generic 64 bit read stable operation for 32 bit targets. */
-#define this_cpu_read_stable_8(pcp)    ({ BUILD_BUG(); (typeof(pcp))0; })
+#define this_cpu_read_stable_8(pcp)    ({ BUILD_BUG(); (typeof(pcp))0; })
+
+#define raw_cpu_read_long(pcp)         raw_cpu_read_4(pcp)
 #endif
 
 #define x86_this_cpu_constant_test_bit(_nr, _var)                      \
This page took 0.05098 seconds and 4 git commands to generate.