From 90ef62c78fa950cb23e17862e9a1f9262f1f21c2 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sun, 18 Jan 2015 09:40:53 +0000 Subject: [PATCH] kernel: preserve bootloader command line on MIPS Somewhere in the conversion of the MIPS architecture code to Device Tree usage, there's been a failure to keep the separate variables holding the kernel command line reconciled between the tree and the bootloader. This patch restores previous functionality that broke. Signed-off-by: Daniel Gimpelevich SVN-Revision: 44030 --- .../997-device_tree_cmdline.patch | 22 ++++++++++++++++--- .../997-device_tree_cmdline.patch | 22 ++++++++++++++++--- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/target/linux/generic/patches-3.14/997-device_tree_cmdline.patch b/target/linux/generic/patches-3.14/997-device_tree_cmdline.patch index bc8e7091d5d8..9a52e1542bc1 100644 --- a/target/linux/generic/patches-3.14/997-device_tree_cmdline.patch +++ b/target/linux/generic/patches-3.14/997-device_tree_cmdline.patch @@ -1,6 +1,8 @@ ---- a/drivers/of/fdt.c -+++ b/drivers/of/fdt.c -@@ -817,6 +817,9 @@ int __init early_init_dt_scan_chosen(uns +Index: linux-3.14.28/drivers/of/fdt.c +=================================================================== +--- linux-3.14.28.orig/drivers/of/fdt.c 2015-01-08 10:01:03.000000000 -0800 ++++ linux-3.14.28/drivers/of/fdt.c 2015-01-17 20:29:51.674740290 -0800 +@@ -817,6 +817,9 @@ p = of_get_flat_dt_prop(node, "bootargs", &l); if (p != NULL && l > 0) strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE)); @@ -10,3 +12,17 @@ /* * CONFIG_CMDLINE is meant to be a default in case nothing else +Index: linux-3.14.28/arch/mips/kernel/prom.c +=================================================================== +--- linux-3.14.28.orig/arch/mips/kernel/prom.c 2015-01-17 20:30:09.922830766 -0800 ++++ linux-3.14.28/arch/mips/kernel/prom.c 2015-01-17 20:30:54.095049815 -0800 +@@ -49,6 +49,9 @@ + + void __init __dt_setup_arch(struct boot_param_header *bph) + { ++ if (boot_command_line[0] == '\0') ++ strcpy(boot_command_line, arcs_cmdline); ++ + if (!early_init_dt_scan(bph)) + return; + diff --git a/target/linux/generic/patches-3.18/997-device_tree_cmdline.patch b/target/linux/generic/patches-3.18/997-device_tree_cmdline.patch index 572e280c74c4..b3aa1d196674 100644 --- a/target/linux/generic/patches-3.18/997-device_tree_cmdline.patch +++ b/target/linux/generic/patches-3.18/997-device_tree_cmdline.patch @@ -1,6 +1,8 @@ ---- a/drivers/of/fdt.c -+++ b/drivers/of/fdt.c -@@ -903,6 +903,9 @@ int __init early_init_dt_scan_chosen(uns +Index: linux-3.18.2/drivers/of/fdt.c +=================================================================== +--- linux-3.18.2.orig/drivers/of/fdt.c 2015-01-17 20:57:52.419074654 -0800 ++++ linux-3.18.2/drivers/of/fdt.c 2015-01-17 20:57:52.367074398 -0800 +@@ -903,6 +903,9 @@ p = of_get_flat_dt_prop(node, "bootargs", &l); if (p != NULL && l > 0) strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE)); @@ -10,3 +12,17 @@ /* * CONFIG_CMDLINE is meant to be a default in case nothing else +Index: linux-3.18.2/arch/mips/kernel/prom.c +=================================================================== +--- linux-3.18.2.orig/arch/mips/kernel/prom.c 2015-01-17 20:57:52.419074654 -0800 ++++ linux-3.18.2/arch/mips/kernel/prom.c 2015-01-17 20:57:52.415074633 -0800 +@@ -49,6 +49,9 @@ + + void __init __dt_setup_arch(void *bph) + { ++ if (boot_command_line[0] == '\0') ++ strcpy(boot_command_line, arcs_cmdline); ++ + if (!early_init_dt_scan(bph)) + return; + -- 2.30.2