From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Poirier Subject: Re: [PATCH-next v2] netfilter: don't use module_init/exit in core IPV4 code Date: Thu, 16 Jan 2014 14:26:13 -0500 Message-ID: <20140116192613.GA23133@d2.synalogic.ca> References: <1389638147-30399-1-git-send-email-paul.gortmaker@windriver.com> <1389819427-20199-1-git-send-email-paul.gortmaker@windriver.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Pablo Neira Ayuso , Patrick McHardy , Jozsef Kadlecsik , "David S. Miller" , netfilter-devel@vger.kernel.org, netdev@vger.kernel.org To: Paul Gortmaker Return-path: Content-Disposition: inline In-Reply-To: <1389819427-20199-1-git-send-email-paul.gortmaker@windriver.com> Sender: netdev-owner@vger.kernel.org List-Id: netfilter-devel.vger.kernel.org On 2014/01/15 15:57, Paul Gortmaker wrote: > The file net/ipv4/netfilter.o is created based on whether > CONFIG_NETFILTER is set. However that is defined as a bool, and > hence this file with the core netfilter hooks will never be > modular. So using module_init as an alias for __initcall can be > somewhat misleading. > > Fix this up now, so that we can relocate module_init from > init.h into module.h in the future. If we don't do this, we'd > have to add module.h to obviously non-modular code, and that > would be a worse thing. Also add an inclusion of init.h, as > that was previously implicit here in the netfilter.c file. > > Note that direct use of __initcall is discouraged, vs. one > of the priority categorized subgroups. As __initcall gets > mapped onto device_initcall, our use of subsys_initcall (which > seems to make sense for netfilter code) will thus change this > registration from level 6-device to level 4-subsys (i.e. slightly > earlier). However no observable impact of that small difference > has been observed during testing, or is expected. (i.e. the > location of the netfilter messages in dmesg remains unchanged > with respect to all the other surrounding messages.) > > As for the module_exit, rather than replace it with __exitcall, > we simply remove it, since it appears only UML does anything > with those, and even for UML, there is no relevant cleanup > to be done here. > > Signed-off-by: Paul Gortmaker > --- > > [v2: Drop __exitcall stuff completely, as per Eric's suggestion > given for patch at http://patchwork.ozlabs.org/patch/311164/ ] > > net/ipv4/netfilter.c | 9 +-------- > 1 file changed, 1 insertion(+), 8 deletions(-) > > diff --git a/net/ipv4/netfilter.c b/net/ipv4/netfilter.c > index c3e0adea9c27..31abf9636ba7 100644 > --- a/net/ipv4/netfilter.c > +++ b/net/ipv4/netfilter.c > @@ -197,11 +197,4 @@ static int __init ipv4_netfilter_init(void) > { > return nf_register_afinfo(&nf_ip_afinfo); > } > - > -static void __exit ipv4_netfilter_fini(void) > -{ > - nf_unregister_afinfo(&nf_ip_afinfo); > -} > - > -module_init(ipv4_netfilter_init); > -module_exit(ipv4_netfilter_fini); > +device_initcall(ipv4_netfilter_init); device_ vs. subsys_initcall changed from v1 of the patch and no longer matches the description I think. > -- > 1.8.5.2 > > -- > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html