diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2008-08-01 10:39:20 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-08-01 10:39:35 -0400 |
commit | 3f1934bc1a0dcc2b7c31c8fd4f41ea2dd6522c3e (patch) | |
tree | c315531d86ee7a48954c99a5cfd8989ff64676f2 /drivers/s390 | |
parent | 8f8470032570988af2eeff520ca01a32fd908b2b (diff) |
[S390] qdio: fix section mismatch bug.
Fix the two section mismatch warnings below.
This fixes two real bugs since the code which has __exit annotations
may already be gone when it is called.
WARNING: vmlinux.o(.init.text+0x1cc4a): Section mismatch in reference from the function init_QDIO() to the function .exit.text:qdio_setup_exit()
The function __init init_QDIO() references
a function __exit qdio_setup_exit().
This is often seen when error handling in the init function
uses functionality in the exit path.
The fix is often to remove the __exit annotation of
qdio_setup_exit() so it may be used outside an exit section.
WARNING: vmlinux.o(.init.text+0x1cc7a): Section mismatch in reference from the function init_QDIO() to the function .exit.text:qdio_remove_perf_stats()
The function __init init_QDIO() references
a function __exit qdio_remove_perf_stats().
This is often seen when error handling in the init function
uses functionality in the exit path.
The fix is often to remove the __exit annotation of
qdio_remove_perf_stats() so it may be used outside an exit section.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/cio/qdio_perf.c | 2 | ||||
-rw-r--r-- | drivers/s390/cio/qdio_setup.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/s390/cio/qdio_perf.c b/drivers/s390/cio/qdio_perf.c index ea01b85b1cc9..ec5c4a414235 100644 --- a/drivers/s390/cio/qdio_perf.c +++ b/drivers/s390/cio/qdio_perf.c | |||
@@ -142,7 +142,7 @@ int __init qdio_setup_perf_stats(void) | |||
142 | return 0; | 142 | return 0; |
143 | } | 143 | } |
144 | 144 | ||
145 | void __exit qdio_remove_perf_stats(void) | 145 | void qdio_remove_perf_stats(void) |
146 | { | 146 | { |
147 | #ifdef CONFIG_PROC_FS | 147 | #ifdef CONFIG_PROC_FS |
148 | remove_proc_entry("qdio_perf", NULL); | 148 | remove_proc_entry("qdio_perf", NULL); |
diff --git a/drivers/s390/cio/qdio_setup.c b/drivers/s390/cio/qdio_setup.c index 56fdd57ba192..1bd2a208db28 100644 --- a/drivers/s390/cio/qdio_setup.c +++ b/drivers/s390/cio/qdio_setup.c | |||
@@ -515,7 +515,7 @@ int __init qdio_setup_init(void) | |||
515 | return 0; | 515 | return 0; |
516 | } | 516 | } |
517 | 517 | ||
518 | void __exit qdio_setup_exit(void) | 518 | void qdio_setup_exit(void) |
519 | { | 519 | { |
520 | kmem_cache_destroy(qdio_q_cache); | 520 | kmem_cache_destroy(qdio_q_cache); |
521 | } | 521 | } |