Skip to content

Commit

Permalink
serial8250: sanity check nr_uarts on all paths.
Browse files Browse the repository at this point in the history
I had 8250.nr_uarts=16 in the boot line of a test kernel and I had a weird
mysterious crash in sysfs.  After taking an in-depth look I realized that
CONFIG_SERIAL_8250_NR_UARTS was set to 4 and I was walking off the end of
the serial8250_ports array.

Ouch!!!

Don't let this happen to someone else.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Acked-by: Alan Cox <alan@redhat.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Eric W. Biederman authored and Linus Torvalds committed Jul 12, 2008
1 parent f31ad92 commit 05d81d2
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/serial/8250.c
Original file line number Diff line number Diff line change
Expand Up @@ -2623,6 +2623,9 @@ static struct console serial8250_console = {

static int __init serial8250_console_init(void)
{
if (nr_uarts > UART_NR)
nr_uarts = UART_NR;

serial8250_isa_init_ports();
register_console(&serial8250_console);
return 0;
Expand Down

0 comments on commit 05d81d2

Please sign in to comment.