Skip to contentSkip to conversation

powerpc/mm/radix: Parse disable_radix commandline correctly.

PATCH In review Aneesh Kumar K.V 2 participants 3 messages Mar 30, 2018 – Apr 4, 2018 PowerPC

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 powerpc/mm/radix: Parse disable_radix commandline correctly.

From: "Aneesh Kumar K.V" <[email protected]>

kernel parameter disable_radix takes different options disable_radix=yes|no|1|0 or just disable_radix. When using the later format we get below error.

Malformed early option 'disable_radix'

---
 arch/powerpc/mm/init_64.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/powerpc/mm/init_64.c +1 -1
index fdb424a29f03..9c9f8dde31c3 100644
@@ -372,7 +372,7 @@ static int __init parse_disable_radix(char *p)
 {
 	bool val;
 
-	if (strlen(p) == 0)
+	if (!p)
 		val = true;
 	else if (kstrtobool(p, &val))
 		return -EINVAL;
Signature · 1 line
2.14.3
#1 lore raw

PATCH 2/2 powerpc/mm/radix: Update command line parsing for disable_radix

kernel parameter disable_radix takes different options disable_radix=yes|no|1|0 or just disable_radix.

prom_init parsing is not supporting these options.

---
 arch/powerpc/kernel/prom_init.c        | 16 +++++++++++++---
 arch/powerpc/kernel/prom_init_check.sh |  2 +-
 2 files changed, 14 insertions(+), 4 deletions(-)
arch/powerpc/kernel/prom_init.c +13 -3
index 0323e073341d..c85333c244e8 100644
@@ -171,7 +171,7 @@ static unsigned long __initdata prom_tce_alloc_start;
 static unsigned long __initdata prom_tce_alloc_end;
 #endif
 
-static bool __initdata prom_radix_disable;
+static bool prom_radix_disable __initdata = !IS_ENABLED(CONFIG_PPC_RADIX_MMU_DEFAULT);
 
 struct platform_support {
 	bool hash_mmu;
@@ -641,9 +641,19 @@ static void __init early_cmdline_parse(void)
 
 	opt = strstr(prom_cmd_line, "disable_radix");
 	if (opt) {
-		prom_debug("Radix disabled from cmdline\n");
-		prom_radix_disable = true;
+		opt += 13;
+		if (*opt && *opt == '=') {
+			bool val;
+
+			if (kstrtobool(++opt, &val))
+				prom_radix_disable = false;
+			else
+				prom_radix_disable = val;
+		} else
+			prom_radix_disable = true;
 	}
+	if (prom_radix_disable)
+		prom_debug("Radix disabled from cmdline\n");
 }
 
 #if defined(CONFIG_PPC_PSERIES) || defined(CONFIG_PPC_POWERNV)
arch/powerpc/kernel/prom_init_check.sh +1 -1
index 12640f7e726b..acb6b9226352 100644
@@ -19,7 +19,7 @@
 WHITELIST="add_reloc_offset __bss_start __bss_stop copy_and_flush
 _end enter_prom memcpy memset reloc_offset __secondary_hold
 __secondary_hold_acknowledge __secondary_hold_spinloop __start
-strcmp strcpy strlcpy strlen strncmp strstr logo_linux_clut224
+strcmp strcpy strlcpy strlen strncmp strstr kstrtobool logo_linux_clut224
 reloc_got2 kernstart_addr memstart_addr linux_banner _stext
 __prom_init_toc_start __prom_init_toc_end btext_setup_display TOC."
 
Signature · 1 line
2.14.3
#2 lore raw
In reply to Aneesh Kumar K.V
Quoted 9 lines · Aneesh Kumar K.V

From: "Aneesh Kumar K.V" <[email protected]>

kernel parameter disable_radix takes different options disable_radix=yes|no|1|0 or just disable_radix. When using the later format we get below error.

Malformed early option 'disable_radix'

Series applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/cec4e9b28ffbcb9ce04b9e33946c50

cheers