kernel-hacking-2024-linux-s.../drivers
Pavel Emelyanov 4665079cbb [NETNS]: Move some code into __init section when CONFIG_NET_NS=n
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>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-10 16:54:58 -07:00
..
acorn/char
acpi
amba
ata sata_mv: correct S/G table limits 2007-10-09 12:38:26 -07:00
atm [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
auxdisplay
base Driver core: fix SYSF_DEPRECATED breakage for nested classdevs 2007-10-07 16:42:22 -07:00
block [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
bluetooth
cdrom
char Correct Makefile rule for generating custom keymap 2007-10-08 16:06:51 -07:00
clocksource
connector [NET]: Support multiple network namespaces with netlink 2007-10-10 16:49:09 -07:00
cpufreq
crypto
dio
dma
edac
eisa
fc4
firewire firewire: point to migration document 2007-10-07 13:48:41 +02:00
firmware
hid
hwmon
i2c
ide Fix non-terminated PCI match table in PowerMac IDE 2007-10-06 09:32:56 -07:00
ieee1394 [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
infiniband [IPoIB]: Convert to netdevice internal stats 2007-10-10 16:53:41 -07:00
input
isdn [ISDN]: Change I4L to use alloc_netdev(). 2007-10-10 16:54:57 -07:00
kvm
leds
lguest
macintosh
mca
md
media [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
message [NET]: Nuke SET_MODULE_OWNER macro. 2007-10-10 16:51:13 -07:00
mfd
misc
mmc
mtd
net [NETNS]: Move some code into __init section when CONFIG_NET_NS=n 2007-10-10 16:54:58 -07:00
nubus
of
oprofile
parisc [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
parport
pci
pcmcia
pnp
power
ps3
rapidio
rtc
s390 qeth: discard inbound packets with unknown header id 2007-10-10 16:54:42 -07:00
sbus
scsi [NET]: Support multiple network namespaces with netlink 2007-10-10 16:49:09 -07:00
serial Add manufacturer and card id of teltonica pcmcia modems 2007-10-07 16:28:43 -07:00
sh
sn
spi
ssb [SSB]: Sparse fixes. 2007-10-10 16:52:21 -07:00
tc
telephony
uio
usb [NET]: Nuke SET_MODULE_OWNER macro. 2007-10-10 16:51:13 -07:00
video
w1
xen
zorro
Kconfig [SSB]: add Sonics Silicon Backplane bus support 2007-10-10 16:51:36 -07:00
Makefile [SSB]: add Sonics Silicon Backplane bus support 2007-10-10 16:51:36 -07:00