mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 10:06:43 +07:00
serial: 8250: Do nothing if nr_uarts=0
When nr_uarts was set to 0 (via config or 8250_core.nr_uarts), we crash early on x86 because serial8250_isa_init_ports dereferences base_ops which remains NULL. In fact, there is nothing to do for all the callers of serial8250_isa_init_ports if there are no uarts. Based on suggestions by Peter Hurley. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
24ee4df122
commit
59cfc45f17
@ -3535,6 +3535,9 @@ static struct console univ8250_console = {
|
||||
|
||||
static int __init univ8250_console_init(void)
|
||||
{
|
||||
if (nr_uarts == 0)
|
||||
return -ENODEV;
|
||||
|
||||
serial8250_isa_init_ports();
|
||||
register_console(&univ8250_console);
|
||||
return 0;
|
||||
@ -3565,7 +3568,7 @@ int __init early_serial_setup(struct uart_port *port)
|
||||
{
|
||||
struct uart_port *p;
|
||||
|
||||
if (port->line >= ARRAY_SIZE(serial8250_ports))
|
||||
if (port->line >= ARRAY_SIZE(serial8250_ports) || nr_uarts == 0)
|
||||
return -ENODEV;
|
||||
|
||||
serial8250_isa_init_ports();
|
||||
@ -3932,6 +3935,9 @@ static int __init serial8250_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (nr_uarts == 0)
|
||||
return -ENODEV;
|
||||
|
||||
serial8250_isa_init_ports();
|
||||
|
||||
printk(KERN_INFO "Serial: 8250/16550 driver, "
|
||||
|
Loading…
Reference in New Issue
Block a user