]> git.hungrycats.org Git - linux/commit
[PATCH] serial console registration bugfix
authorAndrew Morton <akpm@osdl.org>
Mon, 29 Dec 2003 13:44:25 +0000 (05:44 -0800)
committerLinus Torvalds <torvalds@home.osdl.org>
Mon, 29 Dec 2003 13:44:25 +0000 (05:44 -0800)
commit6f2220203d88732a4b04599e8513f6e10fcc9660
tree32c2642a1427b0394f4513ca5df997ee48dbfaa1
parent783faefab8d8c5eadc6e3538999b0a407617998d
[PATCH] serial console registration bugfix

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.
drivers/serial/serial_core.c