From: Tejun Heo Date: Thu, 14 Nov 2024 18:50:58 +0000 (-1000) Subject: sched_ext: ops.cpu_acquire() should be called with SCX_KF_REST X-Git-Tag: v6.12~13^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a4af89cc50f3c1035c1e0dfb50948a23107f3e95;p=platform%2Fkernel%2Flinux-amlogic.git sched_ext: ops.cpu_acquire() should be called with SCX_KF_REST ops.cpu_acquire() is currently called with 0 kf_maks which is interpreted as SCX_KF_UNLOCKED which allows all unlocked kfuncs, but ops.cpu_acquire() is called from balance_one() under the rq lock and should only be allowed call kfuncs that are safe under the rq lock. Update it to use SCX_KF_REST. Signed-off-by: Tejun Heo Cc: David Vernet Cc: Zhao Mengmeng Link: http://lkml.kernel.org/r/ZzYvf2L3rlmjuKzh@slm.duckdns.org Fixes: 245254f7081d ("sched_ext: Implement sched_ext_ops.cpu_acquire/release()") --- diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index 19f9cb3a4190..1ae8520b63dd 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -2645,7 +2645,7 @@ static int balance_one(struct rq *rq, struct task_struct *prev) * emitted in scx_next_task_picked(). */ if (SCX_HAS_OP(cpu_acquire)) - SCX_CALL_OP(0, cpu_acquire, cpu_of(rq), NULL); + SCX_CALL_OP(SCX_KF_REST, cpu_acquire, cpu_of(rq), NULL); rq->scx.cpu_released = false; }