kernel/sched/ext.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
scx_bpf_cpu_rq() obviously returns NULL on invalid cpu.
Mark it as such.
Cc: stable@vger.kernel.org
Fixes: 6203ef73fa5c ("sched/ext: Add BPF function to fetch rq")
Signed-off-by: Christian Loehle <christian.loehle@arm.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 7dd5cbcb7a06..b734f55f3318 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -7599,7 +7599,7 @@ BTF_ID_FLAGS(func, scx_bpf_get_online_cpumask, KF_ACQUIRE)
BTF_ID_FLAGS(func, scx_bpf_put_cpumask, KF_RELEASE)
BTF_ID_FLAGS(func, scx_bpf_task_running, KF_RCU)
BTF_ID_FLAGS(func, scx_bpf_task_cpu, KF_RCU)
-BTF_ID_FLAGS(func, scx_bpf_cpu_rq)
+BTF_ID_FLAGS(func, scx_bpf_cpu_rq, KF_RET_NULL)
#ifdef CONFIG_CGROUP_SCHED
BTF_ID_FLAGS(func, scx_bpf_task_cgroup, KF_RCU | KF_ACQUIRE)
#endif
--
2.34.1
Hi Christian, On Tue, Jul 29, 2025 at 05:03:36PM +0100, Christian Loehle wrote: > scx_bpf_cpu_rq() obviously returns NULL on invalid cpu. > Mark it as such. Makes sense. Maybe add something like the following to the commit message to better justify why we want the verifier to enforce the NULL check: While scx_ops_error() is triggered on invalid CPUs, the BPF scheduler doesn't exit immediately, so there's a window where scx_bpf_cpu_rq() may return NULL and still be dereferenced. With something like that: Acked-by: Andrea Righi <arighi@nvidia.com> Thanks, -Andrea > > Cc: stable@vger.kernel.org > Fixes: 6203ef73fa5c ("sched/ext: Add BPF function to fetch rq") > Signed-off-by: Christian Loehle <christian.loehle@arm.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 7dd5cbcb7a06..b734f55f3318 100644 > --- a/kernel/sched/ext.c > +++ b/kernel/sched/ext.c > @@ -7599,7 +7599,7 @@ BTF_ID_FLAGS(func, scx_bpf_get_online_cpumask, KF_ACQUIRE) > BTF_ID_FLAGS(func, scx_bpf_put_cpumask, KF_RELEASE) > BTF_ID_FLAGS(func, scx_bpf_task_running, KF_RCU) > BTF_ID_FLAGS(func, scx_bpf_task_cpu, KF_RCU) > -BTF_ID_FLAGS(func, scx_bpf_cpu_rq) > +BTF_ID_FLAGS(func, scx_bpf_cpu_rq, KF_RET_NULL) > #ifdef CONFIG_CGROUP_SCHED > BTF_ID_FLAGS(func, scx_bpf_task_cgroup, KF_RCU | KF_ACQUIRE) > #endif > -- > 2.34.1
© 2016 - 2025 Red Hat, Inc.