s390/numa: correct early_param handling
authorVasily Gorbik <gor@linux.ibm.com>
Fri, 16 Aug 2019 13:49:49 +0000 (15:49 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Mon, 26 Aug 2019 10:51:17 +0000 (12:51 +0200)
When command line options are used without specifying values
(e.g. "emu_size" instead of "emu_size="), the value is NULL. Check that
before performing string operations and further processing.

Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/numa/mode_emu.c
arch/s390/numa/numa.c

index 71a12a4..72d742b 100644 (file)
@@ -558,9 +558,7 @@ static int __init early_parse_emu_nodes(char *p)
 {
        int count;
 
-       if (kstrtoint(p, 0, &count) != 0 || count <= 0)
-               return 0;
-       if (count <= 0)
+       if (!p || kstrtoint(p, 0, &count) != 0 || count <= 0)
                return 0;
        emu_nodes = min(count, MAX_NUMNODES);
        return 0;
@@ -572,7 +570,8 @@ early_param("emu_nodes", early_parse_emu_nodes);
  */
 static int __init early_parse_emu_size(char *p)
 {
-       emu_size = memparse(p, NULL);
+       if (p)
+               emu_size = memparse(p, NULL);
        return 0;
 }
 early_param("emu_size", early_parse_emu_size);
index 8eb9e97..d2910fa 100644 (file)
@@ -158,6 +158,8 @@ early_param("numa_debug", parse_debug);
 
 static int __init parse_numa(char *parm)
 {
+       if (!parm)
+               return 1;
        if (strcmp(parm, numa_mode_plain.name) == 0)
                mode = &numa_mode_plain;
 #ifdef CONFIG_NUMA_EMU