diff options
author | Helge Deller <deller@gmx.de> | 2009-01-13 16:51:07 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-13 17:03:43 -0500 |
commit | 125c97d8a59888c5678734c2b70cbd08c847bd99 (patch) | |
tree | 39a22727dbbf543d457d73c91cc9b6b9db164f8e /drivers/serial | |
parent | e0b325d310a6b11f1538413fd557d2eb98f2fae5 (diff) |
fix early_serial_setup() regression
Commit b430428a188e8a434325e251d0704af4b88b4711 ("8250: Don't clobber
spinlocks.") introduced a regression on the parisc architecture, which
broke the handover to the serial port at boottime.
early_serial_setup() was changed to only copy a subset of the uart_port
fields, and sadly the "type" and "line" fields were forgotten and thus
the serial port was not initialized and could not be used for a
handover. This patch fixes this by copying the missing fields.
As this change to early_serial_setup() doesn't need an initialized
spinlock in the uart_port struct any longer, we can drop the spinlock
initialization in the superio driver.
Cc: David Daney <ddaney@caviumnetworks.com>
Cc: Tomaso Paoletti <tpaoletti@caviumnetworks.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Acked-by: Kyle McMartin <kyle@mcmartin.ca>
Cc: linux-parisc@vger.kernel.org
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/8250.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index 1889a63ebc22..0d934bfbdd9b 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -2839,6 +2839,8 @@ int __init early_serial_setup(struct uart_port *port) | |||
2839 | p->flags = port->flags; | 2839 | p->flags = port->flags; |
2840 | p->mapbase = port->mapbase; | 2840 | p->mapbase = port->mapbase; |
2841 | p->private_data = port->private_data; | 2841 | p->private_data = port->private_data; |
2842 | p->type = port->type; | ||
2843 | p->line = port->line; | ||
2842 | 2844 | ||
2843 | set_io_from_upio(p); | 2845 | set_io_from_upio(p); |
2844 | if (port->serial_in) | 2846 | if (port->serial_in) |