2015-06-13 04:57:15

by Jeremiah Mahler

[permalink] [raw]
Subject: [PATCH] crypto: aesni-intel: fix crypto_fpu_exit() section mismatch

The '__init aesni_init()' function calls the '__exit crypto_fpu_exit()'
function directly. Since they are in different sections, this generates
a warning.

make CONFIG_DEBUG_SECTION_MISMATCH=y
...
WARNING: arch/x86/crypto/aesni-intel.o(.init.text+0x12b): Section
mismatch in reference from the function init_module() to the function
.exit.text:crypto_fpu_exit()
The function __init init_module() references
a function __exit crypto_fpu_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
crypto_fpu_exit() so it may be used outside an exit section.

Fix the warning by removing the __exit annotation.

Signed-off-by: Jeremiah Mahler <[email protected]>
---
arch/x86/crypto/fpu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/crypto/fpu.c b/arch/x86/crypto/fpu.c
index 5a2f30f..e7d679e 100644
--- a/arch/x86/crypto/fpu.c
+++ b/arch/x86/crypto/fpu.c
@@ -156,7 +156,7 @@ int __init crypto_fpu_init(void)
return crypto_register_template(&crypto_fpu_tmpl);
}

-void __exit crypto_fpu_exit(void)
+void crypto_fpu_exit(void)
{
crypto_unregister_template(&crypto_fpu_tmpl);
}
--
2.1.4


2015-06-15 10:19:44

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH] crypto: aesni-intel: fix crypto_fpu_exit() section mismatch

On Fri, Jun 12, 2015 at 09:56:40PM -0700, Jeremiah Mahler wrote:
> The '__init aesni_init()' function calls the '__exit crypto_fpu_exit()'
> function directly. Since they are in different sections, this generates
> a warning.
>
> make CONFIG_DEBUG_SECTION_MISMATCH=y
> ...
> WARNING: arch/x86/crypto/aesni-intel.o(.init.text+0x12b): Section
> mismatch in reference from the function init_module() to the function
> .exit.text:crypto_fpu_exit()
> The function __init init_module() references
> a function __exit crypto_fpu_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
> crypto_fpu_exit() so it may be used outside an exit section.
>
> Fix the warning by removing the __exit annotation.
>
> Signed-off-by: Jeremiah Mahler <[email protected]>

Applied.
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt