diff options
author | Juri Lelli <juri.lelli@redhat.com> | 2020-06-17 09:29:19 +0200 |
---|---|---|
committer | Borislav Petkov <bp@suse.de> | 2020-06-28 17:01:20 +0200 |
commit | ce9bc3b27f2a21a7969b41ffb04df8cf61bd1592 (patch) | |
tree | 161125e9274c8eb6f6cf070e3cc003d404cada93 /kernel/sched/deadline.c | |
parent | sched/core: Check cpus_mask, not cpus_ptr in __set_cpus_allowed_ptr(), to fix... (diff) | |
download | linux-ce9bc3b27f2a21a7969b41ffb04df8cf61bd1592.tar.xz linux-ce9bc3b27f2a21a7969b41ffb04df8cf61bd1592.zip |
sched/deadline: Initialize ->dl_boosted
syzbot reported the following warning triggered via SYSC_sched_setattr():
WARNING: CPU: 0 PID: 6973 at kernel/sched/deadline.c:593 setup_new_dl_entity /kernel/sched/deadline.c:594 [inline]
WARNING: CPU: 0 PID: 6973 at kernel/sched/deadline.c:593 enqueue_dl_entity /kernel/sched/deadline.c:1370 [inline]
WARNING: CPU: 0 PID: 6973 at kernel/sched/deadline.c:593 enqueue_task_dl+0x1c17/0x2ba0 /kernel/sched/deadline.c:1441
This happens because the ->dl_boosted flag is currently not initialized by
__dl_clear_params() (unlike the other flags) and setup_new_dl_entity()
rightfully complains about it.
Initialize dl_boosted to 0.
Fixes: 2d3d891d3344 ("sched/deadline: Add SCHED_DEADLINE inheritance logic")
Reported-by: syzbot+5ac8bac25f95e8b221e7@syzkaller.appspotmail.com
Signed-off-by: Juri Lelli <juri.lelli@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Daniel Wagner <dwagner@suse.de>
Link: https://lkml.kernel.org/r/20200617072919.818409-1-juri.lelli@redhat.com
Diffstat (limited to '')
-rw-r--r-- | kernel/sched/deadline.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index 504d2f51b0d6..f63f337c7147 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2692,6 +2692,7 @@ void __dl_clear_params(struct task_struct *p) dl_se->dl_bw = 0; dl_se->dl_density = 0; + dl_se->dl_boosted = 0; dl_se->dl_throttled = 0; dl_se->dl_yielded = 0; dl_se->dl_non_contending = 0; |