|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] xen/sched: fix scheduler callback verification on init
commit dd8d3dc9fab2c9fe988c682fc5de896de5c6afad
Author: Ruslan Ruslichenko <Ruslan_Ruslichenko@xxxxxxxx>
AuthorDate: Fri Sep 25 23:30:22 2026 +0200
Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CommitDate: Thu Oct 1 19:14:42 2026 +0100
xen/sched: fix scheduler callback verification on init
During core scheduler initialization, each registered scheduler
is sanity tested in two steps:
- it must provide required callbacks (e.g. init, do_schedule).
- if global_init callback is present, it must succeed.
If any of the steps fail, scheduler entry is cleared in global
'schedulers' array.
However, in the current implementation, if verification fails during
the first step, the scheduler entry is cleared but verification
sequence is not interrupted. This lead to NULL pointer dereference
when subsequent required callbacks verified, and possible during
the second step.
The patch fixes the crashes by skipping consequent checks if one of
the required callbacks are not present for the scheduler.
Fixes: ec25b3c0261c ("xen/sched: only allow schedulers with all mandatory
functions available")
Signed-off-by: Ruslan Ruslichenko <Ruslan_Ruslichenko@xxxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Juergen Gross <jgross@xxxxxxxx>
---
xen/common/sched/core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 911551a328..0b072bdee6 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -3064,6 +3064,7 @@ void __init scheduler_init(void)
printk("scheduler %s misses .%s, dropped\n", \
schedulers[i]->opt_name, #f); \
schedulers[i] = NULL; \
+ continue; \
}
sched_test_func(init);
--
generated by git-patchbot for /home/xen/git/xen.git#staging
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |