"Denis V. Lunev" <[EMAIL PROTECTED]> writes: > Eric W. Biederman wrote: >> Benjamin Thery <[EMAIL PROTECTED]> writes: >> >>> Eric W. Biederman wrote: >>>> Benjamin Thery <[EMAIL PROTECTED]> writes: >>>> >>>>> Denis V. Lunev wrote: >>>>>> The patch attached should help. The idea is simple. The "init" should be >>>>>> called only once without NETNS. Period. No need for any lists. >>>>> This is the kind of idea I had but I didn't think it could be >>>>> that simple. :) >>>>> Thanks Denis. >>>> It isn't. > > this will work due to INIT_LIST_HEAD with circles list to itself and a > del operation will work.
Suppose I have this fragment of code in a module: > static int __net_init xt_net_init(struct net *net) > { > ... > } > > static void __net_exit xt_net_exit(struct net *net) > { > ... > } > > static struct pernet_operations __net_initdata xt_net_ops = { > .init = xt_net_init, > .exit = xt_net_exit, > }; > > static int __init xt_init(void) > { > return register_pernet_subsys(&xt_net_ops); > } > > static void __exit xt_fini(void) > { > unregister_pernet_subsys(&xt_net_ops); > } > > module_init(xt_init); > module_exit(xt_fini); What happens during module removal when unregister_pernet_subys calls xt_net_ops.exit after xt_net_ops has been removed from the kernels memory? > By the way, I think that we can in the case of undefined CONFIG_NET_NS > reduce register to calling ->init method and unregister to calling > ->exit method. > > This is a correct thing at least for now and will be welcomed by the all > embedded/etc people. I'm not fundamentally opposed. Earlier versions of my patchset did that and more. However I think the pain is greater then the gain right now. Especially since this concept seem to require having quality inspected into it. Eric - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html