From: David S. Miller Date: Sat, 29 Dec 2007 09:19:49 +0000 (-0800) Subject: [SERIAL]: Fix section mismatches in Sun serial console drivers. X-Git-Tag: v2.6.24-rc7~25^2 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=fb445ee5f9bfc7cbef9e397556170c608dc02955;p=linux-2.6-omap-h63xx.git [SERIAL]: Fix section mismatches in Sun serial console drivers. We're exporting an __init function, oops :-) The core issue here is that add_preferred_console() is marked as __init, this makes it impossible to invoke this thing from a driver probe routine which is what the Sparc serial drivers need to do. There is no harm in dropping the __init marker. This code will actually work properly when invoked from a modular driver, except that init will probably not pick up the console change without some other support code. Then we can drop the __init from sunserial_console_match() and we're no longer exporting an __init function to modules. Signed-off-by: David S. Miller --- diff --git a/drivers/serial/suncore.c b/drivers/serial/suncore.c index 707c5b03bce..a2d4a19550a 100644 --- a/drivers/serial/suncore.c +++ b/drivers/serial/suncore.c @@ -52,7 +52,7 @@ void sunserial_unregister_minors(struct uart_driver *drv, int count) } EXPORT_SYMBOL(sunserial_unregister_minors); -int __init sunserial_console_match(struct console *con, struct device_node *dp, +int sunserial_console_match(struct console *con, struct device_node *dp, struct uart_driver *drv, int line) { int off; diff --git a/kernel/printk.c b/kernel/printk.c index a30fe33de39..89011bf8c10 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -817,7 +817,7 @@ __setup("console=", console_setup); * commonly to provide a default console (ie from PROM variables) when * the user has not supplied one. */ -int __init add_preferred_console(char *name, int idx, char *options) +int add_preferred_console(char *name, int idx, char *options) { struct console_cmdline *c; int i;