• Andrew Morton's avatar
    [PATCH] serial console registration bugfix · 6f222020
    Andrew Morton authored
    From: Bjorn Helgaas <bjorn.helgaas@hp.com>
    
    uart_set_options() can dereference a null pointer.  This happens if you
    specify a console that hasn't previously been setup by early_serial_setup().
    
    For example, on ia64, the HCDP typically tells us about line 0, so we calls
    early_serial_setup() for it.  If the user specifies "console=ttyS3", we
    machine-check when trying to follow the uninitialized port->ops pointer.
    
    It's not entirely clear to me whether we should return 0 or -ENODEV or
    something.  The advantage of returning zero is that if the user specifies
    "console=ttyS0" and we just lack the HCDP, the console doesn't work as early
    as usual, but it does start working after the serial driver detects the port
    (though the baud/parity/etc from the command line are lost).  Returning
    -ENODEV seems to prevent it from ever working.
    6f222020
serial_core.c 58.1 KB