diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 7eea1f809fbe72a318e7b03c2769b1d2b2782ba8..c7016a4acb562b6f2284d24b8c7aae09167223aa 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -7026,7 +7026,7 @@ int tg_set_affinity_period(struct task_group *tg, u64 period_ms) if (unlikely(!tg->auto_affinity)) return -EPERM; - if (period_ms > U64_MAX / NSEC_PER_MSEC) + if (!period_ms || period_ms > U64_MAX / NSEC_PER_MSEC) return -EINVAL; raw_spin_lock_irq(&tg->auto_affinity->lock); diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 592440a2d5db09db324b118a11cdf37522561a2e..c7064f67f4a53d0fdb3e99704153fce0bee0a2c7 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -139,7 +139,7 @@ static int one_thousand = 1000; #ifdef CONFIG_PRINTK static int ten_thousand = 10000; #endif -#ifdef CONFIG_QOS_SCHED +#if defined(CONFIG_QOS_SCHED) || defined(CONFIG_QOS_SCHED_SMART_GRID) static int hundred_thousand = 100000; #endif #ifdef CONFIG_PERF_EVENTS @@ -1343,7 +1343,9 @@ static struct ctl_table kern_table[] = { .data = &sysctl_affinity_adjust_delay_ms, .maxlen = sizeof(unsigned int), .mode = 0644, - .proc_handler = proc_dointvec, + .proc_handler = proc_dointvec_minmax, + .extra1 = &zero, + .extra2 = &hundred_thousand, }, #endif { }