summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2012-06-22 18:25:19 +0400
committerIngo Molnar <mingo@kernel.org>2012-07-22 17:47:52 +0400
commit36d93d88a5396baa135f8bcde7b8501dfe3b8e53 (patch)
tree05735ddf8bf7b1eb6d5a556b87ec7a6a792dcc89 /arch
parentd872818dbbeed1bccf58c7f8c7db432154c802f9 (diff)
downloadlinux-36d93d88a5396baa135f8bcde7b8501dfe3b8e53.tar.xz
Revert "x86/early_printk: Replace obsolete simple_strtoul() usage with kstrtoint()"
This reverts commit fbd24153c48b8425b09c161a020483cd77da870e. 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: Shuah Khan <shuahkhan@gmail.com> Link: http://lkml.kernel.org/r/1338424803.3569.5.camel@lorien2 Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/early_printk.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
index 5e4771266f1a..9b9f18b49918 100644
--- a/arch/x86/kernel/early_printk.c
+++ b/arch/x86/kernel/early_printk.c
@@ -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;
}