]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
sched/hrtick: Fix hrtick() vs. scheduling context
authorPeter Zijlstra <peterz@infradead.org>
Mon, 1 Sep 2025 20:46:29 +0000 (22:46 +0200)
committerIngo Molnar <mingo@kernel.org>
Sat, 6 Dec 2025 09:03:13 +0000 (10:03 +0100)
The sched_class::task_tick() method is called on the donor
sched_class, and sched_tick() hands it rq->donor as argument,
which is consistent.

However, while hrtick() uses the donor sched_class, it then passes
rq->curr, which is inconsistent. Fix it.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Acked-by: John Stultz <jstultz@google.com>
Link: https://patch.msgid.link/20250918080205.442967033@infradead.org
kernel/sched/core.c

index fc358c1b6ca987e66917f99a82f5fc307baeef7e..1711e9e501003aef2608f6e3ccefdd8719ca66f0 100644 (file)
@@ -878,7 +878,7 @@ static enum hrtimer_restart hrtick(struct hrtimer *timer)
 
        rq_lock(rq, &rf);
        update_rq_clock(rq);
-       rq->donor->sched_class->task_tick(rq, rq->curr, 1);
+       rq->donor->sched_class->task_tick(rq, rq->donor, 1);
        rq_unlock(rq, &rf);
 
        return HRTIMER_NORESTART;