tty/8250_early: Don't truncate last character of options
PATCH RESEND 1/1 tty/8250_early: Don't truncate last character of options
The earlier change to use strlcpy uncovered a bug in the options argument length calculation causing last character to be truncated. This makes the actual console to be configured with incorrect baudrate when specifying the console using console=uart,... syntax.
Bug symptom seen in kernel log output:
Kernel command line: console=uart,mmio,0x90000000,115200 Early serial console at MMIO 0x90000000 (options '11520')
which then results in a invalid baud rate 11520 instead of the expected 115200 when the console is switched to ttyS0 later in the boot process.
Signed-off-by Henrik Nordstrom <[email protected]>
--- drivers/tty/serial/8250/8250_early.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/tty/serial/8250/8250_early.c +2 -1
@@ -193,7 +193,8 @@ static int __init parse_options(struct early_serial8250_device *device,if (options) { options++; device->baud =simple_strtoul (options,NULL ,0 ); - length =min (strcspn (options," " ),sizeof (device->options)); + length =min (strcspn (options," " ) +1 , +sizeof (device->options));strlcpy (device->options, options, length); }else { device->baud =probe_baud (port);
Signature · 1 line
1.8.3.1