s390/processor: always inline cpu flag helper functions

arch_cpu_idle() is marked noinstr and therefore must only call functions
which are also not instrumented.

Make sure that cpu flag helper functions are always inlined to avoid that
the compiler generates an out-of-line function for e.g. the call within
arch_cpu_idle().

Reviewed-by: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
Heiko Carstens 2023-02-06 14:49:41 +01:00
parent a9cbc1b471
commit 87f79d886d

View File

@ -44,17 +44,17 @@
typedef long (*sys_call_ptr_t)(struct pt_regs *regs); typedef long (*sys_call_ptr_t)(struct pt_regs *regs);
static inline void set_cpu_flag(int flag) static __always_inline void set_cpu_flag(int flag)
{ {
S390_lowcore.cpu_flags |= (1UL << flag); S390_lowcore.cpu_flags |= (1UL << flag);
} }
static inline void clear_cpu_flag(int flag) static __always_inline void clear_cpu_flag(int flag)
{ {
S390_lowcore.cpu_flags &= ~(1UL << flag); S390_lowcore.cpu_flags &= ~(1UL << flag);
} }
static inline int test_cpu_flag(int flag) static __always_inline int test_cpu_flag(int flag)
{ {
return !!(S390_lowcore.cpu_flags & (1UL << flag)); return !!(S390_lowcore.cpu_flags & (1UL << flag));
} }
@ -63,7 +63,7 @@ static inline int test_cpu_flag(int flag)
* Test CIF flag of another CPU. The caller needs to ensure that * Test CIF flag of another CPU. The caller needs to ensure that
* CPU hotplug can not happen, e.g. by disabling preemption. * CPU hotplug can not happen, e.g. by disabling preemption.
*/ */
static inline int test_cpu_flag_of(int flag, int cpu) static __always_inline int test_cpu_flag_of(int flag, int cpu)
{ {
struct lowcore *lc = lowcore_ptr[cpu]; struct lowcore *lc = lowcore_ptr[cpu];
return !!(lc->cpu_flags & (1UL << flag)); return !!(lc->cpu_flags & (1UL << flag));