Commit c135e84a authored by Stephen Rothwell's avatar Stephen Rothwell Committed by J. Bruce Fields
Browse files

sunrpc: fix up rpcauth_remove_module section mismatch



On Wed, 29 Sep 2010 14:02:38 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> After merging the final tree, today's linux-next build (powerpc
> ppc44x_defconfig) produced tis warning:
>
> WARNING: net/sunrpc/sunrpc.o(.init.text+0x110): Section mismatch in reference from the function init_sunrpc() to the function .exit.text:rpcauth_remove_module()
> The function __init init_sunrpc() references
> a function __exit rpcauth_remove_module().
> 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
> rpcauth_remove_module() so it may be used outside an exit section.
>
> Probably caused by commit 2f72c9b7
> ("sunrpc: The per-net skeleton").

This actually causes a build failure on a sparc32 defconfig build:

`rpcauth_remove_module' referenced in section `.init.text' of net/built-in.o: defined in discarded section `.exit.text' of net/built-in.o

I applied the following patch for today:

Fixes:

`rpcauth_remove_module' referenced in section `.init.text' of net/built-in.o: defined in discarded section `.exit.text' of net/built-in.o

Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Acked-by: default avatarPavel Emelyanov <xemul@openvz.org>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent 90d51b02
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -122,8 +122,8 @@ extern const struct rpc_authops authnull_ops;
int __init		rpc_init_authunix(void);
int __init		rpc_init_generic_auth(void);
int __init		rpcauth_init_module(void);
void __exit		rpcauth_remove_module(void);
void __exit		rpc_destroy_generic_auth(void);
void			rpcauth_remove_module(void);
void			rpc_destroy_generic_auth(void);
void 			rpc_destroy_authunix(void);

struct rpc_cred *	rpc_lookup_cred(void);
+1 −1
Original line number Diff line number Diff line
@@ -658,7 +658,7 @@ out1:
	return err;
}

void __exit rpcauth_remove_module(void)
void rpcauth_remove_module(void)
{
	rpc_destroy_authunix();
	rpc_destroy_generic_auth();
+1 −1
Original line number Diff line number Diff line
@@ -158,7 +158,7 @@ int __init rpc_init_generic_auth(void)
	return rpcauth_init_credcache(&generic_auth);
}

void __exit rpc_destroy_generic_auth(void)
void rpc_destroy_generic_auth(void)
{
	rpcauth_destroy_credcache(&generic_auth);
}