projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
5872080
)
sched/eevdf: Fix heap corruption more
author
Peter Zijlstra
<peterz@infradead.org>
Tue, 17 Oct 2023 14:59:47 +0000
(16:59 +0200)
committer
Peter Zijlstra
<peterz@infradead.org>
Wed, 18 Oct 2023 08:22:13 +0000
(10:22 +0200)
Because someone is a flaming idiot... and forgot we have current as
se->on_rq but not actually in the tree itself, and walking rb_parent()
on an entry not in the tree is 'funky' and KASAN complains.
Fixes: 8dafa9d0eb1a ("sched/eevdf: Fix min_deadline heap integrity")
Reported-by: 0599jiangyc@gmail.com
Reported-by: Dmitry Safonov <0x7f454c46@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Dmitry Safonov <0x7f454c46@gmail.com>
Link:
https://bugzilla.kernel.org/show_bug.cgi?id=218020
Link:
https://lkml.kernel.org/r/CAJwJo6ZGXO07%3DQvW4fgQfbsDzQPs9xj5sAQ1zp%3DmAyPMNbHYww%40mail.gmail.com
kernel/sched/fair.c
patch
|
blob
|
history
diff --git
a/kernel/sched/fair.c
b/kernel/sched/fair.c
index 061a30a8925ab8ca08d32430a4f929450ff4abed..df348aa55d3c7e049fba67b76e1ada8035e797f9 100644
(file)
--- a/
kernel/sched/fair.c
+++ b/
kernel/sched/fair.c
@@
-3657,7
+3657,8
@@
static void reweight_entity(struct cfs_rq *cfs_rq, struct sched_entity *se,
*/
deadline = div_s64(deadline * old_weight, weight);
se->deadline = se->vruntime + deadline;
- min_deadline_cb_propagate(&se->run_node, NULL);
+ if (se != cfs_rq->curr)
+ min_deadline_cb_propagate(&se->run_node, NULL);
}
#ifdef CONFIG_SMP