diff options
-rw-r--r-- | arch/x86/include/asm/preempt.h | 8 | ||||
-rw-r--r-- | arch/x86/kernel/i386_ksyms_32.c | 4 | ||||
-rw-r--r-- | arch/x86/kernel/x8664_ksyms_64.c | 4 | ||||
-rw-r--r-- | arch/x86/lib/thunk_32.S | 4 | ||||
-rw-r--r-- | arch/x86/lib/thunk_64.S | 4 | ||||
-rw-r--r-- | include/asm-generic/preempt.h | 7 | ||||
-rw-r--r-- | include/linux/preempt.h | 6 | ||||
-rw-r--r-- | kernel/sched/core.c | 8 |
8 files changed, 13 insertions, 32 deletions
diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h index 8f3271842533..dca71714f860 100644 --- a/arch/x86/include/asm/preempt.h +++ b/arch/x86/include/asm/preempt.h | |||
@@ -99,11 +99,9 @@ static __always_inline bool should_resched(void) | |||
99 | extern asmlinkage void ___preempt_schedule(void); | 99 | extern asmlinkage void ___preempt_schedule(void); |
100 | # define __preempt_schedule() asm ("call ___preempt_schedule") | 100 | # define __preempt_schedule() asm ("call ___preempt_schedule") |
101 | extern asmlinkage void preempt_schedule(void); | 101 | extern asmlinkage void preempt_schedule(void); |
102 | # ifdef CONFIG_CONTEXT_TRACKING | 102 | extern asmlinkage void ___preempt_schedule_notrace(void); |
103 | extern asmlinkage void ___preempt_schedule_context(void); | 103 | # define __preempt_schedule_notrace() asm ("call ___preempt_schedule_notrace") |
104 | # define __preempt_schedule_context() asm ("call ___preempt_schedule_context") | 104 | extern asmlinkage void preempt_schedule_notrace(void); |
105 | extern asmlinkage void preempt_schedule_context(void); | ||
106 | # endif | ||
107 | #endif | 105 | #endif |
108 | 106 | ||
109 | #endif /* __ASM_PREEMPT_H */ | 107 | #endif /* __ASM_PREEMPT_H */ |
diff --git a/arch/x86/kernel/i386_ksyms_32.c b/arch/x86/kernel/i386_ksyms_32.c index 05fd74f537d6..64341aa485ae 100644 --- a/arch/x86/kernel/i386_ksyms_32.c +++ b/arch/x86/kernel/i386_ksyms_32.c | |||
@@ -40,7 +40,5 @@ EXPORT_SYMBOL(empty_zero_page); | |||
40 | 40 | ||
41 | #ifdef CONFIG_PREEMPT | 41 | #ifdef CONFIG_PREEMPT |
42 | EXPORT_SYMBOL(___preempt_schedule); | 42 | EXPORT_SYMBOL(___preempt_schedule); |
43 | #ifdef CONFIG_CONTEXT_TRACKING | 43 | EXPORT_SYMBOL(___preempt_schedule_notrace); |
44 | EXPORT_SYMBOL(___preempt_schedule_context); | ||
45 | #endif | ||
46 | #endif | 44 | #endif |
diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c index 37d8fa4438f0..a0695be19864 100644 --- a/arch/x86/kernel/x8664_ksyms_64.c +++ b/arch/x86/kernel/x8664_ksyms_64.c | |||
@@ -75,7 +75,5 @@ EXPORT_SYMBOL(native_load_gs_index); | |||
75 | 75 | ||
76 | #ifdef CONFIG_PREEMPT | 76 | #ifdef CONFIG_PREEMPT |
77 | EXPORT_SYMBOL(___preempt_schedule); | 77 | EXPORT_SYMBOL(___preempt_schedule); |
78 | #ifdef CONFIG_CONTEXT_TRACKING | 78 | EXPORT_SYMBOL(___preempt_schedule_notrace); |
79 | EXPORT_SYMBOL(___preempt_schedule_context); | ||
80 | #endif | ||
81 | #endif | 79 | #endif |
diff --git a/arch/x86/lib/thunk_32.S b/arch/x86/lib/thunk_32.S index 5eb715087b80..e407941d0488 100644 --- a/arch/x86/lib/thunk_32.S +++ b/arch/x86/lib/thunk_32.S | |||
@@ -38,8 +38,6 @@ | |||
38 | 38 | ||
39 | #ifdef CONFIG_PREEMPT | 39 | #ifdef CONFIG_PREEMPT |
40 | THUNK ___preempt_schedule, preempt_schedule | 40 | THUNK ___preempt_schedule, preempt_schedule |
41 | #ifdef CONFIG_CONTEXT_TRACKING | 41 | THUNK ___preempt_schedule_notrace, preempt_schedule_notrace |
42 | THUNK ___preempt_schedule_context, preempt_schedule_context | ||
43 | #endif | ||
44 | #endif | 42 | #endif |
45 | 43 | ||
diff --git a/arch/x86/lib/thunk_64.S b/arch/x86/lib/thunk_64.S index f89ba4e93025..2198902329b5 100644 --- a/arch/x86/lib/thunk_64.S +++ b/arch/x86/lib/thunk_64.S | |||
@@ -49,9 +49,7 @@ | |||
49 | 49 | ||
50 | #ifdef CONFIG_PREEMPT | 50 | #ifdef CONFIG_PREEMPT |
51 | THUNK ___preempt_schedule, preempt_schedule | 51 | THUNK ___preempt_schedule, preempt_schedule |
52 | #ifdef CONFIG_CONTEXT_TRACKING | 52 | THUNK ___preempt_schedule_notrace, preempt_schedule_notrace |
53 | THUNK ___preempt_schedule_context, preempt_schedule_context | ||
54 | #endif | ||
55 | #endif | 53 | #endif |
56 | 54 | ||
57 | #if defined(CONFIG_TRACE_IRQFLAGS) \ | 55 | #if defined(CONFIG_TRACE_IRQFLAGS) \ |
diff --git a/include/asm-generic/preempt.h b/include/asm-generic/preempt.h index eb6f9e6c3075..d0a7a4753db2 100644 --- a/include/asm-generic/preempt.h +++ b/include/asm-generic/preempt.h | |||
@@ -79,11 +79,8 @@ static __always_inline bool should_resched(void) | |||
79 | #ifdef CONFIG_PREEMPT | 79 | #ifdef CONFIG_PREEMPT |
80 | extern asmlinkage void preempt_schedule(void); | 80 | extern asmlinkage void preempt_schedule(void); |
81 | #define __preempt_schedule() preempt_schedule() | 81 | #define __preempt_schedule() preempt_schedule() |
82 | 82 | extern asmlinkage void preempt_schedule_notrace(void); | |
83 | #ifdef CONFIG_CONTEXT_TRACKING | 83 | #define __preempt_schedule_notrace() preempt_schedule_notrace() |
84 | extern asmlinkage void preempt_schedule_context(void); | ||
85 | #define __preempt_schedule_context() preempt_schedule_context() | ||
86 | #endif | ||
87 | #endif /* CONFIG_PREEMPT */ | 84 | #endif /* CONFIG_PREEMPT */ |
88 | 85 | ||
89 | #endif /* __ASM_PREEMPT_H */ | 86 | #endif /* __ASM_PREEMPT_H */ |
diff --git a/include/linux/preempt.h b/include/linux/preempt.h index a1a00e14c14f..7686dd63bc35 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h | |||
@@ -204,15 +204,11 @@ do { \ | |||
204 | 204 | ||
205 | #ifdef CONFIG_PREEMPT | 205 | #ifdef CONFIG_PREEMPT |
206 | 206 | ||
207 | #ifndef CONFIG_CONTEXT_TRACKING | ||
208 | #define __preempt_schedule_context() __preempt_schedule() | ||
209 | #endif | ||
210 | |||
211 | #define preempt_enable_notrace() \ | 207 | #define preempt_enable_notrace() \ |
212 | do { \ | 208 | do { \ |
213 | barrier(); \ | 209 | barrier(); \ |
214 | if (unlikely(__preempt_count_dec_and_test())) \ | 210 | if (unlikely(__preempt_count_dec_and_test())) \ |
215 | __preempt_schedule_context(); \ | 211 | __preempt_schedule_notrace(); \ |
216 | } while (0) | 212 | } while (0) |
217 | #else | 213 | #else |
218 | #define preempt_enable_notrace() \ | 214 | #define preempt_enable_notrace() \ |
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 4e925ea10c0c..af0a5a6cee98 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -2937,9 +2937,8 @@ asmlinkage __visible void __sched notrace preempt_schedule(void) | |||
2937 | NOKPROBE_SYMBOL(preempt_schedule); | 2937 | NOKPROBE_SYMBOL(preempt_schedule); |
2938 | EXPORT_SYMBOL(preempt_schedule); | 2938 | EXPORT_SYMBOL(preempt_schedule); |
2939 | 2939 | ||
2940 | #ifdef CONFIG_CONTEXT_TRACKING | ||
2941 | /** | 2940 | /** |
2942 | * preempt_schedule_context - preempt_schedule called by tracing | 2941 | * preempt_schedule_notrace - preempt_schedule called by tracing |
2943 | * | 2942 | * |
2944 | * The tracing infrastructure uses preempt_enable_notrace to prevent | 2943 | * The tracing infrastructure uses preempt_enable_notrace to prevent |
2945 | * recursion and tracing preempt enabling caused by the tracing | 2944 | * recursion and tracing preempt enabling caused by the tracing |
@@ -2952,7 +2951,7 @@ EXPORT_SYMBOL(preempt_schedule); | |||
2952 | * instead of preempt_schedule() to exit user context if needed before | 2951 | * instead of preempt_schedule() to exit user context if needed before |
2953 | * calling the scheduler. | 2952 | * calling the scheduler. |
2954 | */ | 2953 | */ |
2955 | asmlinkage __visible void __sched notrace preempt_schedule_context(void) | 2954 | asmlinkage __visible void __sched notrace preempt_schedule_notrace(void) |
2956 | { | 2955 | { |
2957 | enum ctx_state prev_ctx; | 2956 | enum ctx_state prev_ctx; |
2958 | 2957 | ||
@@ -2980,8 +2979,7 @@ asmlinkage __visible void __sched notrace preempt_schedule_context(void) | |||
2980 | __preempt_count_sub(PREEMPT_ACTIVE + PREEMPT_DISABLE_OFFSET); | 2979 | __preempt_count_sub(PREEMPT_ACTIVE + PREEMPT_DISABLE_OFFSET); |
2981 | } while (need_resched()); | 2980 | } while (need_resched()); |
2982 | } | 2981 | } |
2983 | EXPORT_SYMBOL_GPL(preempt_schedule_context); | 2982 | EXPORT_SYMBOL_GPL(preempt_schedule_notrace); |
2984 | #endif /* CONFIG_CONTEXT_TRACKING */ | ||
2985 | 2983 | ||
2986 | #endif /* CONFIG_PREEMPT */ | 2984 | #endif /* CONFIG_PREEMPT */ |
2987 | 2985 | ||