When the cmdline of "nr_cpus" is not valid, the @nr_cpu_ids is assigned a stale value. The nr_cpus is only valid when get_option() return 1. So check the return value to prevent this.
Signed-off-by: Muchun Song <songmuc...@bytedance.com> --- changelog in v2: 1) Rework the commit log. 2) Rework the return value check. kernel/smp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/smp.c b/kernel/smp.c index a5a66fc28f4e..0bc260158047 100644 --- a/kernel/smp.c +++ b/kernel/smp.c @@ -772,8 +772,8 @@ static int __init nrcpus(char *str) { int nr_cpus; - get_option(&str, &nr_cpus); - if (nr_cpus > 0 && nr_cpus < nr_cpu_ids) + if ((get_option(&str, &nr_cpus) == 1) && + nr_cpus > 0 && nr_cpus < nr_cpu_ids) nr_cpu_ids = nr_cpus; return 0; -- 2.11.0