[S390] qdio: fix section mismatch bug.
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Fri, 1 Aug 2008 14:39:20 +0000 (16:39 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 1 Aug 2008 14:39:35 +0000 (16:39 +0200)
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>
drivers/s390/cio/qdio_perf.c
drivers/s390/cio/qdio_setup.c

index ea01b85b1cc9435385b7f0415d01a9c66bf373d2..ec5c4a41423521bfa30c06f64aee6e5ae75597f6 100644 (file)
@@ -142,7 +142,7 @@ int __init qdio_setup_perf_stats(void)
        return 0;
 }
 
-void __exit qdio_remove_perf_stats(void)
+void qdio_remove_perf_stats(void)
 {
 #ifdef CONFIG_PROC_FS
        remove_proc_entry("qdio_perf", NULL);
index 56fdd57ba192a1072613c24611df54fa1183e252..1bd2a208db28a3d5a649c3d9a9ea04eebb5390e8 100644 (file)
@@ -515,7 +515,7 @@ int __init qdio_setup_init(void)
        return 0;
 }
 
-void __exit qdio_setup_exit(void)
+void qdio_setup_exit(void)
 {
        kmem_cache_destroy(qdio_q_cache);
 }