serial: fix 8250 early console setup
authorDaniel Ritz <daniel.ritz-ml@swissonline.ch>
Fri, 3 Aug 2007 14:07:43 +0000 (16:07 +0200)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 3 Aug 2007 22:02:56 +0000 (15:02 -0700)
the early setup function serial8250_console_early_setup() can be called
from non __init code (eg. hotpluggable serial ports like serial_cs) so
remove the __init from the call chain to avoid crashes.

Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>
Cc: Yinghai Lu <yinghai.lu@sun.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/serial/8250.c
drivers/serial/8250_early.c
kernel/printk.c

index 2f5a5ac1b271d009ea69ac6b85608fd23406499c..301313002f6b3abc0d1fa67c1ec59d11c8c7ffab 100644 (file)
@@ -2514,7 +2514,7 @@ static int __init serial8250_console_setup(struct console *co, char *options)
        return uart_set_options(port, co, baud, parity, bits, flow);
 }
 
-static int __init serial8250_console_early_setup(void)
+static int serial8250_console_early_setup(void)
 {
        return serial8250_find_port_for_earlycon();
 }
index 150cad5c2eba1adecd0896854cfa83b7c2161639..4d4c9f01be8da7dbde5fa1951cbfbf5ab8bfb593 100644 (file)
@@ -227,7 +227,7 @@ int __init setup_early_serial8250_console(char *cmdline)
        return 0;
 }
 
-int __init serial8250_find_port_for_earlycon(void)
+int serial8250_find_port_for_earlycon(void)
 {
        struct early_serial8250_device *device = &early_device;
        struct uart_port *port = &device->port;
index 051d27e36a6c997e95215b90bfd3f50bfa7c9c08..bd2cd062878d6fb1f4b40895ddee7dbe9f9468da 100644 (file)
@@ -732,7 +732,7 @@ int __init add_preferred_console(char *name, int idx, char *options)
        return 0;
 }
 
-int __init update_console_cmdline(char *name, int idx, char *name_new, int idx_new, char *options)
+int update_console_cmdline(char *name, int idx, char *name_new, int idx_new, char *options)
 {
        struct console_cmdline *c;
        int i;