Messages in this thread Patch in this message | | | Date | Fri, 19 Jun 2020 18:02:19 -0400 | From | Steven Rostedt <> | Subject | [PATCH] sched: Have BUG_ON() check if linker sched classes don't line up correctly |
| |
From: Steven Rostedt (VMware) <rostedt@goodmis.org>
If the sched_class structures do not match how the compiler thinks they are in an array, it can cause hard to debug bugs. Change the BUG_ON() from making sure each of the sched classes are in the proper order, to also making sure they are off by the proper amount.
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> --- diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 7ad864dc3ac5..876d7ecdab52 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6635,12 +6635,13 @@ void __init sched_init(void) unsigned long ptr = 0; int i; - BUG_ON(&idle_sched_class > &fair_sched_class || - &fair_sched_class > &rt_sched_class || - &rt_sched_class > &dl_sched_class); + /* Make sure the linker didn't screw up */ + BUG_ON(&idle_sched_class + 1 != &fair_sched_class || + &fair_sched_class + 1 != &rt_sched_class || + &rt_sched_class + 1 != &dl_sched_class); #ifdef CONFIG_SMP - BUG_ON(&dl_sched_class > &stop_sched_class); + BUG_ON(&dl_sched_class + 1 != &stop_sched_class); #endif wait_bit_init();
| |