kernel/sched/ext.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
scx_bpf_cpuperf_set() has a typo where it dereferences the local
variable @sch, instead of the global @scx_root pointer. Fix by
dereferencing the correct variable.
Fixes: 956f2b11a8a4f ("sched_ext: Drop kf_cpu_valid()")
Signed-off-by: Andrea Righi <arighi@nvidia.com>
---
kernel/sched/ext.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
index ecb251e883eab..1a019a7728fb2 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -6401,7 +6401,7 @@ __bpf_kfunc void scx_bpf_cpuperf_set(s32 cpu, u32 perf)
guard(rcu)();
- sch = rcu_dereference(sch);
+ sch = rcu_dereference(scx_root);
if (unlikely(!sch))
return;
--
2.51.2
Applied to sched_ext/for-6.18-fixes. Thanks. -- tejun
On 10/29/25 13:08, Andrea Righi wrote:
> scx_bpf_cpuperf_set() has a typo where it dereferences the local
> variable @sch, instead of the global @scx_root pointer. Fix by
> dereferencing the correct variable.
>
> Fixes: 956f2b11a8a4f ("sched_ext: Drop kf_cpu_valid()")
> Signed-off-by: Andrea Righi <arighi@nvidia.com>
> ---
> kernel/sched/ext.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
> index ecb251e883eab..1a019a7728fb2 100644
> --- a/kernel/sched/ext.c
> +++ b/kernel/sched/ext.c
> @@ -6401,7 +6401,7 @@ __bpf_kfunc void scx_bpf_cpuperf_set(s32 cpu, u32 perf)
>
> guard(rcu)();
>
> - sch = rcu_dereference(sch);
> + sch = rcu_dereference(scx_root);
> if (unlikely(!sch))
> return;
>
Reviewed-by: Christian Loehle <christian.loehle@arm.com>
© 2016 - 2026 Red Hat, Inc.