Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36d93d88 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Revert "x86/early_printk: Replace obsolete simple_strtoul() usage with kstrtoint()"



This reverts commit fbd24153.

This commit is subtly buggy: kstrto*int() can return an error but
it's not checked in every path. simple_strtoul() on the other hand
could not fail, so this patch subtly intruduces new failure modes.

Signed-off-by: default avatarShuah Khan <shuahkhan@gmail.com>
Link: http://lkml.kernel.org/r/1338424803.3569.5.camel@lorien2


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent d872818d
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -119,7 +119,7 @@ static __init void early_serial_init(char *s)
	unsigned char c;
	unsigned divisor;
	unsigned baud = DEFAULT_BAUD;
	ssize_t ret;
	char *e;

	if (*s == ',')
		++s;
@@ -127,14 +127,14 @@ static __init void early_serial_init(char *s)
	if (*s) {
		unsigned port;
		if (!strncmp(s, "0x", 2)) {
			ret = kstrtoint(s, 16, &early_serial_base);
			early_serial_base = simple_strtoul(s, &e, 16);
		} else {
			static const int __initconst bases[] = { 0x3f8, 0x2f8 };

			if (!strncmp(s, "ttyS", 4))
				s += 4;
			ret = kstrtouint(s, 10, &port);
			if (ret || port > 1)
			port = simple_strtoul(s, &e, 10);
			if (port > 1 || s == e)
				port = 0;
			early_serial_base = bases[port];
		}
@@ -149,8 +149,8 @@ static __init void early_serial_init(char *s)
	outb(0x3, early_serial_base + MCR);	/* DTR + RTS */

	if (*s) {
		ret = kstrtouint(s, 0, &baud);
		if (ret || baud == 0)
		baud = simple_strtoul(s, &e, 0);
		if (baud == 0 || s == e)
			baud = DEFAULT_BAUD;
	}