smp: Fix a potential usage of stale nr_cpus
authorMuchun Song <songmuchun@bytedance.com>
Thu, 16 Jul 2020 07:04:57 +0000 (15:04 +0800)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 22 Jul 2020 08:22:04 +0000 (10:22 +0200)
The get_option() maybe return 0, it means that the nr_cpus is
not initialized. Then we will use the stale nr_cpus to initialize
the nr_cpu_ids. So fix it.

Signed-off-by: Muchun Song <songmuchun@bytedance.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20200716070457.53255-1-songmuchun@bytedance.com
kernel/smp.c

index aa17eedff5bee9159382759f8927ac6d50195510..d0ae8eb6bf8b41df14e24187bf42d2d97a078edc 100644 (file)
@@ -634,8 +634,7 @@ 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) && nr_cpus > 0 && nr_cpus < nr_cpu_ids)
                nr_cpu_ids = nr_cpus;
 
        return 0;