Messages in this thread Patch in this message | | | Date | Sun, 29 Aug 2010 18:13:10 -0700 | From | Yinghai Lu <> | Subject | [PATCH] x86, setup: fix earlyprintk=serial,0x3f8,115200 |
| |
earlyprintk could take io port.
So we need to handle this case in setup code too, otherwise 0x3f8 will be treated as baud rate.
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
--- arch/x86/boot/early_serial_console.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
Index: linux-2.6/arch/x86/boot/early_serial_console.c =================================================================== --- linux-2.6.orig/arch/x86/boot/early_serial_console.c +++ linux-2.6/arch/x86/boot/early_serial_console.c @@ -58,7 +58,19 @@ static void parse_earlyprintk(void) if (arg[pos] == ',') pos++; - if (!strncmp(arg + pos, "ttyS", 4)) { + /* + * make sure we have + * "serial,0x3f8,115200" + * "serial,ttyS0,115200" + * "ttyS0,115200" + */ + if (pos == 7 && !strncmp(arg + pos, "0x", 2)) { + port = simple_strtoull(arg + pos, &e, 16); + if (port == 0 || arg + pos == e) + port = DEFAULT_SERIAL_PORT; + else + pos = e - arg; + } else if (!strncmp(arg + pos, "ttyS", 4)) { static const int bases[] = { 0x3f8, 0x2f8 }; int idx = 0;
| |