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.