diff --git a/projects/imx6/patches/linux/linux-007-config_cmdline.patch b/projects/imx6/patches/linux/linux-007-config_cmdline.patch index bfb08f9024..60b772db0e 100644 --- a/projects/imx6/patches/linux/linux-007-config_cmdline.patch +++ b/projects/imx6/patches/linux/linux-007-config_cmdline.patch @@ -1,12 +1,20 @@ diff -urN a/drivers/of/fdt.c b/drivers/of/fdt.c ---- a/drivers/of/fdt.c 2014-09-25 08:33:34.727318450 +0200 -+++ b/drivers/of/fdt.c 2014-09-25 08:46:52.192711249 +0200 -@@ -822,12 +822,21 @@ +--- a/drivers/of/fdt.c 2015-01-13 20:49:42.799509145 +0100 ++++ b/drivers/of/fdt.c 2015-01-13 20:56:29.118557900 +0100 +@@ -804,6 +804,7 @@ + { + unsigned long l; + char *p; ++ char tmp_command_line[COMMAND_LINE_SIZE] = CONFIG_CMDLINE; + + pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname); + +@@ -822,12 +823,23 @@ * CONFIG_CMDLINE is meant to be a default in case nothing else * managed to set the command line, unless CONFIG_CMDLINE_FORCE * is set in which case we override whatever was found earlier. + * -+ * But we do append CONFIG_CMDLINE to bootloader arguments. ++ * But we do prepend CONFIG_CMDLINE to bootloader arguments anyway. */ #ifdef CONFIG_CMDLINE #ifndef CONFIG_CMDLINE_FORCE @@ -14,9 +22,11 @@ diff -urN a/drivers/of/fdt.c b/drivers/of/fdt.c -#endif strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE); + else { -+ /* append CONFIG_CMDLINE to bootloader arguments */ -+ strlcat(data, " ", COMMAND_LINE_SIZE); -+ strlcat(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE); ++ /* append bootloader arguments to CONFIG_CMDLINE */ ++ strlcat(tmp_command_line, " ", COMMAND_LINE_SIZE); ++ strlcat(tmp_command_line, data, COMMAND_LINE_SIZE); ++ /* copy everything back */ ++ strlcpy(data, tmp_command_line, COMMAND_LINE_SIZE); + } +#else + strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);