serial8250: Sanity check nr_uarts on all paths.
PATCH 1/1 serial8250: Sanity check nr_uarts on all paths.
I had 8250.nr_uarts=16 in the boot line of a test kernel and I had a weird mysterious crash in sysfs. After an taking 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.
--- drivers/serial/8250.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
drivers/serial/8250.c +3 -0
@@ -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 ;
Signature · 1 line
1.5.3.rc6.17.g1911
Quoted 7 lines · On Fri, 11 Jul 2008 12:30:42 -0700 [email protected] (Eric W. Biederman)…
I had 8250.nr_uarts=16 in the boot line of a test kernel and I had a weird mysterious crash in sysfs. After an taking in depth look I realized that
CONFIG_SERIAL_8250_NR_UARTSwas set to 4 and I was walking off the end of theserial8250_portsarray.
Quoted 5 lines
Ouch!!!
Don't let this happen to someone else.
Signed-off-by Eric W. Biederman <[email protected]>
Added to ttydev tree but please fire straight at Linus in case he fancies it for 2.6.26
I had 8250.nr_uarts=16 in the boot line of a test kernel and I had a weird mysterious crash in sysfs. After an taking 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.
---
Quoted 2 lines · Alan Cox
Added to ttydev tree but please fire straight at Linus in case he fancies it for 2.6.26
drivers/serial/8250.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
drivers/serial/8250.c +3 -0
@@ -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 ;
Signature · 1 line
1.5.3.rc6.17.g1911