This reverts commit 2c9a98d3bc808717ab63ad928a2b568967775388. Signed-off-by: Ankur Arora <ankur.a.arora@xxxxxxxxxx> --- arch/x86/include/asm/preempt.h | 34 ++++++++-------------------------- kernel/sched/core.c | 12 ------------ 2 files changed, 8 insertions(+), 38 deletions(-) diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h index 967879366d27..a7bbe15145a5 100644 --- a/arch/x86/include/asm/preempt.h +++ b/arch/x86/include/asm/preempt.h @@ -7,7 +7,6 @@ #include <asm/current.h> #include <linux/thread_info.h> -#include <linux/static_call_types.h> /* We use the MSB mostly because its available */ #define PREEMPT_NEED_RESCHED 0x80000000 @@ -105,33 +104,16 @@ static __always_inline bool should_resched(int preempt_offset) } #ifdef CONFIG_PREEMPTION + extern asmlinkage void preempt_schedule_thunk(void); +# define __preempt_schedule() \ + asm volatile ("call preempt_schedule_thunk" : ASM_CALL_CONSTRAINT) -extern asmlinkage void preempt_schedule(void); -extern asmlinkage void preempt_schedule_thunk(void); - -#define __preempt_schedule_func preempt_schedule_thunk - -DECLARE_STATIC_CALL(preempt_schedule, __preempt_schedule_func); - -#define __preempt_schedule() \ -do { \ - __ADDRESSABLE(STATIC_CALL_KEY(preempt_schedule)); \ - asm volatile ("call " STATIC_CALL_TRAMP_STR(preempt_schedule) : ASM_CALL_CONSTRAINT); \ -} while (0) - -extern asmlinkage void preempt_schedule_notrace(void); -extern asmlinkage void preempt_schedule_notrace_thunk(void); - -#define __preempt_schedule_notrace_func preempt_schedule_notrace_thunk - -DECLARE_STATIC_CALL(preempt_schedule_notrace, __preempt_schedule_notrace_func); - -#define __preempt_schedule_notrace() \ -do { \ - __ADDRESSABLE(STATIC_CALL_KEY(preempt_schedule_notrace)); \ - asm volatile ("call " STATIC_CALL_TRAMP_STR(preempt_schedule_notrace) : ASM_CALL_CONSTRAINT); \ -} while (0) + extern asmlinkage void preempt_schedule(void); + extern asmlinkage void preempt_schedule_notrace_thunk(void); +# define __preempt_schedule_notrace() \ + asm volatile ("call preempt_schedule_notrace_thunk" : ASM_CALL_CONSTRAINT) + extern asmlinkage void preempt_schedule_notrace(void); #endif #endif /* __ASM_PREEMPT_H */ diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 51df0b62f519..2e191992109b 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6891,12 +6891,6 @@ asmlinkage __visible void __sched notrace preempt_schedule(void) NOKPROBE_SYMBOL(preempt_schedule); EXPORT_SYMBOL(preempt_schedule); -#ifdef CONFIG_PREEMPT_DYNAMIC -DEFINE_STATIC_CALL(preempt_schedule, __preempt_schedule_func); -EXPORT_STATIC_CALL(preempt_schedule); -#endif - - /** * preempt_schedule_notrace - preempt_schedule called by tracing * @@ -6949,12 +6943,6 @@ asmlinkage __visible void __sched notrace preempt_schedule_notrace(void) } EXPORT_SYMBOL_GPL(preempt_schedule_notrace); -#ifdef CONFIG_PREEMPT_DYNAMIC -DEFINE_STATIC_CALL(preempt_schedule_notrace, __preempt_schedule_notrace_func); -EXPORT_STATIC_CALL(preempt_schedule_notrace); -#endif - - #endif /* CONFIG_PREEMPTION */ /* -- 2.31.1