hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/IDC9YK -------------------------------- The mainline patch 04746ed80bcf ("sched/syscalls: Split out kernel/sched/syscalls.c from kernel/sched/core.c") moves some EXPORT_SYMBOL from core.c to syscalls.c, resulting in the KABI broken, so still keep the EXPORT_SYMBOL in core.c and leave the implementation in syscalls.c. Fixes: edd5e966b47f ("sched/syscalls: Split out kernel/sched/syscalls.c from kernel/sched/core.c") Signed-off-by: Zicheng Qu <quzicheng@huawei.com> --- kernel/sched/core.c | 17 +++++++++++++++++ kernel/sched/syscalls.c | 6 ------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 1bf2b2ec53f2..0a2cd4558a1f 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -100,6 +100,23 @@ #include <linux/sched/grid_qos.h> +/* + * Fix kabi for 04746ed80bcf, + * and still keep EXPORT_SYMBOL them in core.c instead of syscalls.c + */ +extern void sched_set_fifo_low(struct task_struct *p); +EXPORT_SYMBOL_GPL(sched_set_fifo_low); +extern int sched_setattr_nocheck(struct task_struct *p, const struct sched_attr *attr); +EXPORT_SYMBOL_GPL(sched_setattr_nocheck); +extern int __sched yield_to(struct task_struct *p, bool preempt); +EXPORT_SYMBOL_GPL(yield_to); +extern void set_user_nice(struct task_struct *p, long nice); +EXPORT_SYMBOL(set_user_nice); +extern void sched_set_fifo(struct task_struct *p); +EXPORT_SYMBOL_GPL(sched_set_fifo); +extern void sched_set_normal(struct task_struct *p, int nice); +EXPORT_SYMBOL_GPL(sched_set_normal); + EXPORT_TRACEPOINT_SYMBOL_GPL(ipi_send_cpu); EXPORT_TRACEPOINT_SYMBOL_GPL(ipi_send_cpumask); diff --git a/kernel/sched/syscalls.c b/kernel/sched/syscalls.c index 5f4eaecb90cd..a0efcc8661e5 100644 --- a/kernel/sched/syscalls.c +++ b/kernel/sched/syscalls.c @@ -87,7 +87,6 @@ void set_user_nice(struct task_struct *p, long nice) */ p->sched_class->prio_changed(rq, p, old_prio); } -EXPORT_SYMBOL(set_user_nice); /* * is_nice_reduction - check if nice value is an actual reduction @@ -876,7 +875,6 @@ int sched_setattr_nocheck(struct task_struct *p, const struct sched_attr *attr) { return __sched_setscheduler(p, attr, false, true); } -EXPORT_SYMBOL_GPL(sched_setattr_nocheck); /** * sched_setscheduler_nocheck - change the scheduling policy and/or RT priority of a thread from kernelspace. @@ -920,7 +918,6 @@ void sched_set_fifo(struct task_struct *p) struct sched_param sp = { .sched_priority = MAX_RT_PRIO / 2 }; WARN_ON_ONCE(sched_setscheduler_nocheck(p, SCHED_FIFO, &sp) != 0); } -EXPORT_SYMBOL_GPL(sched_set_fifo); /* * For when you don't much care about FIFO, but want to be above SCHED_NORMAL. @@ -930,7 +927,6 @@ void sched_set_fifo_low(struct task_struct *p) struct sched_param sp = { .sched_priority = 1 }; WARN_ON_ONCE(sched_setscheduler_nocheck(p, SCHED_FIFO, &sp) != 0); } -EXPORT_SYMBOL_GPL(sched_set_fifo_low); void sched_set_normal(struct task_struct *p, int nice) { @@ -940,7 +936,6 @@ void sched_set_normal(struct task_struct *p, int nice) }; WARN_ON_ONCE(sched_setattr_nocheck(p, &attr) != 0); } -EXPORT_SYMBOL_GPL(sched_set_normal); static int do_sched_setscheduler(pid_t pid, int policy, struct sched_param __user *param) @@ -1573,7 +1568,6 @@ int __sched yield_to(struct task_struct *p, bool preempt) return yielded; } -EXPORT_SYMBOL_GPL(yield_to); /** * sys_sched_get_priority_max - return maximum RT priority. -- 2.34.1