Commit ea3acb199a5d7e4da1de0a4288eba993b29f33b9

Authored by Jason Wessel
Committed by Ingo Molnar
1 parent 04edbdef02

x86: earlyprintk: Fix regression to handle serial,ttySn as 1 arg

Commit c953094 ("early_printk: Allow more than one early console")
introduced a regression in the parsing of the earlyprintk= kernel
arguments.

If you specify "earlyprintk=serial,ttyS0,115200" as a kernel
argument, the "serial,ttyS" should be parsed as a single argument
and not as "serial" and then "ttyS".

Also update the documentation to reflect you can specify the ttyS
directly without the "serial" argument.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Cc: Len Brown <lenb@kernel.org>
Cc: Greg KH <gregkh@suse.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
LKML-Reference: <4ABB7D5E.6000301@windriver.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

Showing 2 changed files with 5 additions and 1 deletions Side-by-side Diff

Documentation/kernel-parameters.txt
... ... @@ -671,6 +671,7 @@
671 671 earlyprintk= [X86,SH,BLACKFIN]
672 672 earlyprintk=vga
673 673 earlyprintk=serial[,ttySn[,baudrate]]
  674 + earlyprintk=ttySn[,baudrate]
674 675 earlyprintk=dbgp[debugController#]
675 676  
676 677 Append ",keep" to not disable it when the real console
arch/x86/kernel/early_printk.c
... ... @@ -206,8 +206,11 @@
206 206  
207 207 while (*buf != '\0') {
208 208 if (!strncmp(buf, "serial", 6)) {
209   - early_serial_init(buf + 6);
  209 + buf += 6;
  210 + early_serial_init(buf);
210 211 early_console_register(&early_serial_console, keep);
  212 + if (!strncmp(buf, ",ttyS", 5))
  213 + buf += 5;
211 214 }
212 215 if (!strncmp(buf, "ttyS", 4)) {
213 216 early_serial_init(buf + 4);