diff options
author | Vivek Goyal <vgoyal@in.ibm.com> | 2007-01-10 19:52:44 -0500 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2007-01-10 19:52:44 -0500 |
commit | 118c0ace1b61433311ae4e067fdd32841baa7f91 (patch) | |
tree | f03f854626bf7d482e7138cf2df525380f754719 | |
parent | e96763d6e52c22a8821466e4d01c0c995b8087be (diff) |
[PATCH] x86-64: modpost add more symbols to whitelist pattern2
o MODPOST generates warning for i386 if compiled with CONFIG_RELOCATABLE=y
and serial console support is enabled.
o Serial console setup function, serial8250_console_setup(), is a non __init
function and it calls functions which are of type __init().
(uart_parse_options() and uart_set_options()). Assuming, setup will
be called during init time, changing serial8250_console_setup() to __init.
o Adding one more pattern to modpost whitelist. Console drivers might
have *_console structures containing references to setup functions which
can be of __init type. Don't generate warnings for those.
WARNING: vmlinux - Section mismatch: reference to .init.text: from .data between 'serial8250_console' (at offset 0xc05a33d8) and 'serial8250_reg'
Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
-rw-r--r-- | drivers/serial/8250.c | 2 | ||||
-rw-r--r-- | scripts/mod/modpost.c | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index 51f3c739f7e1..5261f0af8b10 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -2296,7 +2296,7 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count) | |||
2296 | local_irq_restore(flags); | 2296 | local_irq_restore(flags); |
2297 | } | 2297 | } |
2298 | 2298 | ||
2299 | static int serial8250_console_setup(struct console *co, char *options) | 2299 | static int __init serial8250_console_setup(struct console *co, char *options) |
2300 | { | 2300 | { |
2301 | struct uart_port *port; | 2301 | struct uart_port *port; |
2302 | int baud = 9600; | 2302 | int baud = 9600; |
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 15ab5d02e80a..82e019bf2dc5 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c | |||
@@ -595,6 +595,7 @@ static int secref_whitelist(const char *modname, const char *tosec, | |||
595 | "_ops", | 595 | "_ops", |
596 | "_probe", | 596 | "_probe", |
597 | "_probe_one", | 597 | "_probe_one", |
598 | "_console", | ||
598 | NULL | 599 | NULL |
599 | }; | 600 | }; |
600 | 601 | ||