| From: Arnd Bergmann <arnd@arndb.de> |
| Subject: sched: fair: move unused stub functions to header |
| Date: Thu, 23 Nov 2023 12:05:03 +0100 |
| |
| These four functions have a normal definition for CONFIG_FAIR_GROUP_SCHED, |
| and empty one that is only referenced when FAIR_GROUP_SCHED is disabled |
| but CGROUP_SCHED is still enabled. If both are turned off, the functions |
| are still defined but the misisng prototype causes a W=1 warning: |
| |
| kernel/sched/fair.c:12544:6: error: no previous prototype for 'free_fair_sched_group' |
| kernel/sched/fair.c:12546:5: error: no previous prototype for 'alloc_fair_sched_group' |
| kernel/sched/fair.c:12553:6: error: no previous prototype for 'online_fair_sched_group' |
| kernel/sched/fair.c:12555:6: error: no previous prototype for 'unregister_fair_sched_group' |
| |
| Move the alternatives into the header as static inline functions with the |
| correct combination of #ifdef checks to avoid the warning without adding |
| even more complexity. |
| |
| [A different patch with the same description got applied by accident |
| and was later reverted, but the original patch is still missing] |
| |
| Link: https://lkml.kernel.org/r/20231123110506.707903-4-arnd@kernel.org |
| Fixes: 7aa55f2a5902 ("sched/fair: Move unused stub functions to header") |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de> |
| Cc: "David S. Miller" <davem@davemloft.net> |
| Cc: David Woodhouse <dwmw2@infradead.org> |
| Cc: Dinh Nguyen <dinguyen@kernel.org> |
| Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> |
| Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> |
| Cc: Kees Cook <keescook@chromium.org> |
| Cc: Masahiro Yamada <masahiroy@kernel.org> |
| Cc: Matt Turner <mattst88@gmail.com> |
| Cc: Michael Ellerman <mpe@ellerman.id.au> |
| Cc: Nathan Chancellor <nathan@kernel.org> |
| Cc: Nicolas Schier <nicolas@fjasle.eu> |
| Cc: Palmer Dabbelt <palmer@rivosinc.com> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Richard Henderson <richard.henderson@linaro.org> |
| Cc: Richard Weinberger <richard@nod.at> |
| Cc: Rich Felker <dalias@libc.org> |
| Cc: Stephen Rothwell <sfr@canb.auug.org.au> |
| Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> |
| Cc: Tudor Ambarus <tudor.ambarus@linaro.org> |
| Cc: Yoshinori Sato <ysato@users.sourceforge.jp> |
| Cc: Zhihao Cheng <chengzhihao1@huawei.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| kernel/sched/fair.c | 13 ------------- |
| kernel/sched/sched.h | 11 +++++++++++ |
| 2 files changed, 11 insertions(+), 13 deletions(-) |
| |
| --- a/kernel/sched/fair.c~sched-fair-move-unused-stub-functions-to-header |
| +++ a/kernel/sched/fair.c |
| @@ -13036,19 +13036,6 @@ next_cpu: |
| return 0; |
| } |
| |
| -#else /* CONFIG_FAIR_GROUP_SCHED */ |
| - |
| -void free_fair_sched_group(struct task_group *tg) { } |
| - |
| -int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent) |
| -{ |
| - return 1; |
| -} |
| - |
| -void online_fair_sched_group(struct task_group *tg) { } |
| - |
| -void unregister_fair_sched_group(struct task_group *tg) { } |
| - |
| #endif /* CONFIG_FAIR_GROUP_SCHED */ |
| |
| |
| --- a/kernel/sched/sched.h~sched-fair-move-unused-stub-functions-to-header |
| +++ a/kernel/sched/sched.h |
| @@ -436,10 +436,21 @@ static inline int walk_tg_tree(tg_visito |
| |
| extern int tg_nop(struct task_group *tg, void *data); |
| |
| +#ifdef CONFIG_FAIR_GROUP_SCHED |
| extern void free_fair_sched_group(struct task_group *tg); |
| extern int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent); |
| extern void online_fair_sched_group(struct task_group *tg); |
| extern void unregister_fair_sched_group(struct task_group *tg); |
| +#else |
| +static inline void free_fair_sched_group(struct task_group *tg) { } |
| +static inline int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent) |
| +{ |
| + return 1; |
| +} |
| +static inline void online_fair_sched_group(struct task_group *tg) { } |
| +static inline void unregister_fair_sched_group(struct task_group *tg) { } |
| +#endif |
| + |
| extern void init_tg_cfs_entry(struct task_group *tg, struct cfs_rq *cfs_rq, |
| struct sched_entity *se, int cpu, |
| struct sched_entity *parent); |
| _ |