Subject: Re: [GIT PULL nf-next-2.6] IPVS build fixes and clean-ups

From: Simon Horman <[email-masked]>
Date: Tue, 1 Feb 2011 21:04:21 +1100

On Tue, Feb 01, 2011 at 03:06:37PM +1100, Simon Horman wrote:
> On Mon, Jan 31, 2011 at 04:50:09PM -0800, Randy Dunlap wrote:
> > On Tue,  1 Feb 2011 11:14:11 +1100 Simon Horman wrote:
> > 
> > > Hi,
> > > 
> > > This short patch series addresses two linux-next build problems
> > > raised by Randy Dunlap:
> > > 
> > > * net/netfilter/ipvs/ip_vs_core.c:1891: warning: format '%lu' expects type 'long unsigned int', but argument 2 has type 'unsigned int'
> > > * ERROR: "unregister_net_sysctl_table" [net/netfilter/ipvs/ip_vs.ko]
> > >   ERROR: "register_net_sysctl_table" [net/netfilter/ipvs/ip_vs.ko] undefined!
> > > 
> > > The remainder of the changset is cleanups that I noticed along the way.
> > 
> > These 4 patches build successfully for me.
> > However, I do see these warnings (sorry I missed them earlier):
> > 
> > WARNING: net/netfilter/ipvs/ip_vs.o(.init.text+0x161): Section mismatch in reference from the function init_module() to the function .exit.text:ip_vs_sync_cleanup()
> > WARNING: net/netfilter/ipvs/ip_vs.o(.init.text+0x161): Section mismatch in reference from the function init_module() to the function .exit.text:ip_vs_sync_cleanup()
> 
> Thanks, I'll look into that. I will be travelling for a good portion of the
> next day and a bit so I apologise in advance if that delays my next patch.

Hi,

I the following patch seems to be the right fix for this to me.
I will send an amended pull request.

IPVS: Remove ip_vs_sync_cleanup from section __exit

ip_vs_sync_cleanup() may be called from ip_vs_init() on error
and thus needs to be accesible from section __init

Reporte-by: Randy Dunlap <[email-masked]>
Signed-off-by: Simon Horman <[email-masked]>
---
 net/netfilter/ipvs/ip_vs_sync.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
index d5a6e64..2a2a836 100644
--- a/net/netfilter/ipvs/ip_vs_sync.c
+++ b/net/netfilter/ipvs/ip_vs_sync.c
@@ -1686,7 +1686,7 @@ int __init ip_vs_sync_init(void)
 	return register_pernet_subsys(&ipvs_sync_ops);
 }
 
-void __exit ip_vs_sync_cleanup(void)
+void ip_vs_sync_cleanup(void)
 {
 	unregister_pernet_subsys(&ipvs_sync_ops);
 }
-- 
1.7.2.3