From: Alexander Stein <[email protected]> If dmi_get_system_info() returns NULL, pch_uart_init_port() will dereferencea a zero pointer.
This oops was observed on an Atom based board which has no BIOS, but a bootloder which doesn't provide DMI data. Signed-off-by: Alexander Stein <[email protected]> Cc: Greg KH <[email protected]> Cc: <[email protected]> Signed-off-by: Andrew Morton <[email protected]> --- drivers/tty/serial/pch_uart.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff -puN drivers/tty/serial/pch_uart.c~drivers-tty-serial-pch_uartc-dont-oops-if-dmi_get_system_info-returns-null drivers/tty/serial/pch_uart.c --- a/drivers/tty/serial/pch_uart.c~drivers-tty-serial-pch_uartc-dont-oops-if-dmi_get_system_info-returns-null +++ a/drivers/tty/serial/pch_uart.c @@ -1397,6 +1397,7 @@ static struct eg20t_port *pch_uart_init_ int fifosize, base_baud; int port_type; struct pch_uart_driver_data *board; + const char *board_name; board = &drv_dat[id->driver_data]; port_type = board->port_type; @@ -1412,7 +1413,8 @@ static struct eg20t_port *pch_uart_init_ base_baud = 1843200; /* 1.8432MHz */ /* quirk for CM-iTC board */ - if (strstr(dmi_get_system_info(DMI_BOARD_NAME), "CM-iTC")) + board_name = dmi_get_system_info(DMI_BOARD_NAME); + if (board_name && strstr(board_name, "CM-iTC")) base_baud = 192000000; /* 192.0MHz */ switch (port_type) { _ _______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
