diff options
author | Randy Dunlap <rdunlap@xenotime.net> | 2006-06-25 08:48:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-25 13:01:16 -0400 |
commit | 673e321cf9a12ecc2d6ce683fa9105f3443c1cbd (patch) | |
tree | b1f95fceabe94ddb710f00fb34bfaa2ee1c9baf5 | |
parent | cad2af5eb7470f9a0b85498f5ffac894e3cdcd27 (diff) |
[PATCH] char/ip2: more section fixes (replacement)
Priority: tossup.
In theory some of these (previously) __init functions could be called
after init, but that problem has not been observed AFAIK.
There were 2 cases of cleanup_module() (module_exit) calling __init
functions (clear_requested_irq() & have_requested_irq()).
These are more serious, but still not observed AFAIK.
Fix sections mismatch:
WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'cleanup_module' (at offset 0x228b) and 'ip2_loadmain'
WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'cleanup_module' (at offset 0x22ae) and 'ip2_loadmain'
WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'ip2_loadmain' (at offset 0x2501) and 'set_irq'
WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'ip2_loadmain' (at offset 0x25de) and 'set_irq'
WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'ip2_loadmain' (at offset 0x2698) and 'set_irq'
WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'ip2_loadmain' (at offset 0x2922) and 'set_irq'
WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'ip2_loadmain' (at offset 0x299e) and 'set_irq'
Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | drivers/char/ip2/ip2main.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/char/ip2/ip2main.c b/drivers/char/ip2/ip2main.c index 03db1cb3fa95..9ab33c3d359f 100644 --- a/drivers/char/ip2/ip2main.c +++ b/drivers/char/ip2/ip2main.c | |||
@@ -305,7 +305,7 @@ static struct class *ip2_class; | |||
305 | 305 | ||
306 | // Some functions to keep track of what irq's we have | 306 | // Some functions to keep track of what irq's we have |
307 | 307 | ||
308 | static int __init | 308 | static int |
309 | is_valid_irq(int irq) | 309 | is_valid_irq(int irq) |
310 | { | 310 | { |
311 | int *i = Valid_Irqs; | 311 | int *i = Valid_Irqs; |
@@ -316,14 +316,14 @@ is_valid_irq(int irq) | |||
316 | return (*i); | 316 | return (*i); |
317 | } | 317 | } |
318 | 318 | ||
319 | static void __init | 319 | static void |
320 | mark_requested_irq( char irq ) | 320 | mark_requested_irq( char irq ) |
321 | { | 321 | { |
322 | rirqs[iindx++] = irq; | 322 | rirqs[iindx++] = irq; |
323 | } | 323 | } |
324 | 324 | ||
325 | #ifdef MODULE | 325 | #ifdef MODULE |
326 | static int __init | 326 | static int |
327 | clear_requested_irq( char irq ) | 327 | clear_requested_irq( char irq ) |
328 | { | 328 | { |
329 | int i; | 329 | int i; |
@@ -337,7 +337,7 @@ clear_requested_irq( char irq ) | |||
337 | } | 337 | } |
338 | #endif | 338 | #endif |
339 | 339 | ||
340 | static int __init | 340 | static int |
341 | have_requested_irq( char irq ) | 341 | have_requested_irq( char irq ) |
342 | { | 342 | { |
343 | // array init to zeros so 0 irq will not be requested as a side effect | 343 | // array init to zeros so 0 irq will not be requested as a side effect |
@@ -818,7 +818,7 @@ EXPORT_SYMBOL(ip2_loadmain); | |||
818 | /* the board, the channel structures are initialized, and the board details */ | 818 | /* the board, the channel structures are initialized, and the board details */ |
819 | /* are reported on the console. */ | 819 | /* are reported on the console. */ |
820 | /******************************************************************************/ | 820 | /******************************************************************************/ |
821 | static void __init | 821 | static void |
822 | ip2_init_board( int boardnum ) | 822 | ip2_init_board( int boardnum ) |
823 | { | 823 | { |
824 | int i; | 824 | int i; |
@@ -961,7 +961,7 @@ err_initialize: | |||
961 | /* EISA motherboard, or no valid board ID is selected it returns 0. Otherwise */ | 961 | /* EISA motherboard, or no valid board ID is selected it returns 0. Otherwise */ |
962 | /* it returns the base address of the controller. */ | 962 | /* it returns the base address of the controller. */ |
963 | /******************************************************************************/ | 963 | /******************************************************************************/ |
964 | static unsigned short __init | 964 | static unsigned short |
965 | find_eisa_board( int start_slot ) | 965 | find_eisa_board( int start_slot ) |
966 | { | 966 | { |
967 | int i, j; | 967 | int i, j; |