Commit 87f79d88 authored by Heiko Carstens's avatar Heiko Carstens
Browse files

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: default avatarSven Schnelle <svens@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent a9cbc1b4
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -44,17 +44,17 @@

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);
}

static inline void clear_cpu_flag(int flag)
static __always_inline void clear_cpu_flag(int 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));
}
@@ -63,7 +63,7 @@ static inline int test_cpu_flag(int flag)
 * Test CIF flag of another CPU. The caller needs to ensure that
 * 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];
	return !!(lc->cpu_flags & (1UL << flag));