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

Reply via email to