From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konstantin Khorenko Date: Wed, 5 Aug 2026 15:45:32 +0200 Subject: [Devel] [PATCH vz10] sched: enforce the 0..1 bound on sched_cpulimit_scale_cpufreq Message-ID: <20260805134532.505482-1-khorenko@virtuozzo.com> List-Id: 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 --- 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 d5b4d8c97a0c7..7580067e7f44a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4753,7 +4753,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, }, -- 2.43.0