From: Pavel Emelyanov <xemul@openvz.org>
Date: Mon, 08 Oct 2007 17:20:01 +0400
> With the net namespaces many code leaved the __init section,
> thus making the kernel occupy more memory than it did before.
> Since we have a config option that prohibits the namespace
> creation, the functions that initialize/finalize some netns
> stuff are simply not needed and can be freed after the boot.
>
> Currently, this is almost not noticeable, since few calls
> are no longer in __init, but when the namespaces will be
> merged it will be possible to free more code. I propose to
> use the __net_init, __net_exit and __net_initdata "attributes"
> for functions/variables that are not used if the CONFIG_NET_NS
> is not set to save more space in memory.
>
> The exiting functions cannot just reside in the __exit section,
> as noticed by David, since the init section will have
> references on it and the compilation will fail due to modpost
> checks. These references can exist, since the init namespace
> never dies and the exit callbacks are never called. So I
> introduce the __exit_refok attribute just like it is already
> done with the __init_refok.
>
> Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Applied, thanks for fixing this up Pavel.