[Devel] [PATCH RHEL10 COMMIT] sched: enforce the 0..1 bound on sched_cpulimit_scale_cpufreq
Konstantin Khorenko
khorenko at virtuozzo.com
Fri Aug 28 20:09:38 MSK 2026
The commit is pushed to "branch-rh10-6.12.0-211.39.1.16.x.vz10-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh10-6.12.0-211.39.1.16.11.vz10
------>
commit 58d8489a47affd692c11d97592c092a3c377e047
Author: Konstantin Khorenko <khorenko at virtuozzo.com>
Date: Wed Aug 5 15:45:32 2026 +0200
sched: enforce the 0..1 bound on sched_cpulimit_scale_cpufreq
The sched_cpulimit_scale_cpufreq sysctl was registered with
.extra1 = SYSCTL_ZERO
.extra2 = SYSCTL_ONE
but with .proc_handler = proc_dointvec.
proc_dointvec() ignores extra1/extra2, so the intended [0, 1] clamp was
never applied. sysctl_sched_cpulimit_scale_cpufreq is also unsigned int,
so proc_dointvec() is the wrong signedness for it in the first place.
Use proc_douintvec_minmax() so the already-declared bounds are honoured
and an out-of-range write is rejected.
Fixes: 4e99efb641da0 ("sched: Port CONFIG_CFS_CPULIMIT feature")
Feature: sched: ability to limit number of CPUs available to a CT
https://virtuozzo.atlassian.net/browse/VSTOR-137234
Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>
Reviewed-by: Vasileios Almpanis <vasileios.almpanis at virtuozzo.com>
---
kernel/sched/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index fb2477cb1d076..9275501bc3ad0 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -4755,7 +4755,7 @@ static struct ctl_table sched_core_sysctls[] = {
.data = &sysctl_sched_cpulimit_scale_cpufreq,
.maxlen = sizeof(unsigned int),
.mode = 0644,
- .proc_handler = proc_dointvec,
+ .proc_handler = proc_douintvec_minmax,
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE,
},
More information about the Devel
mailing list