On 3/20/25 20:53, Pat Cody wrote: > pick_eevdf() can return null, resulting in a null pointer dereference > crash in pick_next_entity() > > The other call site of pick_eevdf() can already handle a null pointer, > and pick_next_entity() can already return null as well. Add an extra > check to handle the null return here. > > Cc: stable@xxxxxxxxxxxxxxx > Fixes: f12e148892ed ("sched/fair: Prepare pick_next_task() for delayed dequeue") > Signed-off-by: Pat Cody <pat@xxxxxxxxxx> Did this happen on mainline? Any chance it's reproducible? > --- > kernel/sched/fair.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index a553181dc764..f2157298cbce 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -5560,6 +5560,8 @@ pick_next_entity(struct rq *rq, struct cfs_rq *cfs_rq) > } > > struct sched_entity *se = pick_eevdf(cfs_rq); > + if (!se) > + return NULL; > if (se->sched_delayed) { > dequeue_entities(rq, se, DEQUEUE_SLEEP | DEQUEUE_DELAYED); > /*