From: "Jan Beulich" <JBeulich@xxxxxxxx> Date: Thu, 08 Mar 2012 09:37:32 +0000 > __net_exit, judging by the majority of its uses, was intended to serve > as an abstraction to allow calling such annotated functions from both > __init and __exit functions. Using the (bogus and unused elsewhere) > __exit_refok to implement this is inefficient - any non-modular code > really can reside in __init (as non-modular __exit code is never used). > > Therefore, adjust __net_exit to resolve to nothing (i.e. normal .text) > in modules, and __init in the core kernel. > > A few other adjustments are necessary/possible with this done - those > were likely just oversights when added originally. > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> [ I have been waiting for more than a week for a netns developer to review this patch, I guess I'm too optimistic these days. :-( ] The only reason you think __exit_refok is "bogus" is because it's semantics got changed by Sam Ravnborg in commit 312b1485fb509c9bc32eda28ad29537896658cb8 ("Introduce new section reference annotations tags: __ref, __refdata, __refconst") Beforehand the __exit_refok was a real .exit section, so it got completely discarded AT LINK TIME. Now it sits together with __init_refok which is an unremovable kernel image section, which neither gets removed at compile time nor boot time. So __exit_refok did exactly what you say it should do before Sam's change. It's just completely stupid to change the netns section defines, and instead we should revert __exit_refok to mean what it always meant previously. I'm not applying this patch. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html