Hi Greg, please drop this patch. Issue is not related to additional spaces in the command line, nor to init.data initializaitons.
It seems qiute hard to track down, issue disappears if i just add some lines of code in uboot.c or setup.c. Continuing on this. Regards, Angelo Dureghello On Sat, Sep 01, 2018 at 03:16:21AM +0200, Angelo Dureghello wrote: > Without MMU, when CONFIG_UBOOT is set, and CONFIG_BOOTPARAM > is not set, a wrong command-line was produced (boot hangs, > no console), due to an initial erroneus space appended to the > command line in process_uboot_commandline(). > > In MMU mode, the m68k_command_line array was not initially > terminated to zero, and process_uboot_commandline() was still > producing an invalid command-line (boot hangs, no console). > > Signed-off-by: Angelo Dureghello <ang...@sysam.it> > --- > arch/m68k/kernel/setup_mm.c | 1 + > arch/m68k/kernel/setup_no.c | 2 ++ > arch/m68k/kernel/uboot.c | 16 ++++++++++------ > 3 files changed, 13 insertions(+), 6 deletions(-) > > diff --git a/arch/m68k/kernel/setup_mm.c b/arch/m68k/kernel/setup_mm.c > index 5d3596c180f9..8fc2999f11fe 100644 > --- a/arch/m68k/kernel/setup_mm.c > +++ b/arch/m68k/kernel/setup_mm.c > @@ -265,6 +265,7 @@ void __init setup_arch(char **cmdline_p) > init_mm.end_data = (unsigned long)_edata; > init_mm.brk = (unsigned long)_end; > > + m68k_command_line[0] = 0; > #if defined(CONFIG_BOOTPARAM) > strncpy(m68k_command_line, CONFIG_BOOTPARAM_STRING, CL_SIZE); > m68k_command_line[CL_SIZE - 1] = 0; > diff --git a/arch/m68k/kernel/setup_no.c b/arch/m68k/kernel/setup_no.c > index cfd5475bfc31..d65bb433583c 100644 > --- a/arch/m68k/kernel/setup_no.c > +++ b/arch/m68k/kernel/setup_no.c > @@ -94,6 +94,8 @@ void __init setup_arch(char **cmdline_p) > init_mm.end_data = (unsigned long) &_edata; > init_mm.brk = (unsigned long) 0; > > + command_line[0] = 0; > + > config_BSP(&command_line[0], sizeof(command_line)); > > #if defined(CONFIG_BOOTPARAM) > diff --git a/arch/m68k/kernel/uboot.c b/arch/m68k/kernel/uboot.c > index b29c3b241e1b..c4045bbe0a8c 100644 > --- a/arch/m68k/kernel/uboot.c > +++ b/arch/m68k/kernel/uboot.c > @@ -92,13 +92,17 @@ __init void process_uboot_commandline(char *commandp, int > size) > { > int len, n; > > + len = size; > + > n = strnlen(commandp, size); > - commandp += n; > - len = size - n; > - if (len) { > - /* Add the whitespace separator */ > - *commandp++ = ' '; > - len--; > + if (n) { > + commandp += n; > + len -= n; > + if (len) { > + /* Add the whitespace separator */ > + *commandp++ = ' '; > + len--; > + } > } > > parse_uboot_commandline(commandp, len); > -- > 2.18.0 >