linux/drivers/net
Rafael J. Wysocki 8314418629 Freezer: make kernel threads nonfreezable by default
Currently, the freezer treats all tasks as freezable, except for the kernel
threads that explicitly set the PF_NOFREEZE flag for themselves.  This
approach is problematic, since it requires every kernel thread to either
set PF_NOFREEZE explicitly, or call try_to_freeze(), even if it doesn't
care for the freezing of tasks at all.

It seems better to only require the kernel threads that want to or need to
be frozen to use some freezer-related code and to remove any
freezer-related code from the other (nonfreezable) kernel threads, which is
done in this patch.

The patch causes all kernel threads to be nonfreezable by default (ie.  to
have PF_NOFREEZE set by default) and introduces the set_freezable()
function that should be called by the freezable kernel threads in order to
unset PF_NOFREEZE.  It also makes all of the currently freezable kernel
threads call set_freezable(), so it shouldn't cause any (intentional)
change of behaviour to appear.  Additionally, it updates documentation to
describe the freezing of tasks more accurately.

[akpm@linux-foundation.org: build fixes]
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Nigel Cunningham <nigel@nigel.suspend2.net>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Gautham R Shenoy <ego@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-17 10:23:02 -07:00
..
appletalk
arcnet
arm Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2007-07-16 17:48:54 -07:00
atl1 Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2007-07-16 17:48:54 -07:00
bonding bonding/bond_main.c: make 2 functions static 2007-07-10 14:31:45 -04:00
chelsio
cris
cxgb3 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2007-07-12 16:45:40 -07:00
e1000 PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
ehea eHEA: Introducing support vor DLPAR memory add 2007-07-16 17:59:50 -04:00
fec_8xx
fs_enet
hamradio
ibm_emac
irda [IRDA]: use mutex instead of semaphore in VLSI 82C147 IrDA controller driver 2007-07-10 22:18:51 -07:00
ixgb
ixp2000 [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
mlx4 IB/mlx4: Implement query SRQ 2007-07-12 15:41:24 -07:00
myri10ge myri10ge: Remove nonsensical limit in the tx done routine 2007-07-16 18:28:05 -04:00
netxen PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
pcmcia PCMCIA: add Socket Ethernet card into pcnet_cs 2007-07-10 12:24:03 -04:00
phy phylib: Add Marvell 88E1112 phy id 2007-07-10 12:41:09 -04:00
skfp
tokenring tokenring/3c359.c:xl_init() must be __devinit 2007-07-10 12:24:42 -04:00
tulip fallout from Auke's pci ->revision patch 2007-07-15 16:40:52 -07:00
usb Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2007-07-16 17:48:54 -07:00
wan Introduce CONFIG_VIRT_TO_BUS 2007-07-16 09:05:42 -07:00
wireless Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
3c59x.c 3cSOHO100-TX needs EXTRA_PREAMBLE 2007-07-10 12:22:30 -04:00
3c501.c
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c
3c515.c
3c523.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
3c523.h
3c527.c
3c527.h
7990.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
7990.h
8139cp.c Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2007-07-16 17:48:54 -07:00
8139too.c Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
8390.c
8390.h AX88796 network driver 2007-07-10 12:41:08 -04:00
82596.c
Kconfig Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2007-07-16 17:48:54 -07:00
LICENSE.SRC
Makefile Merge branch 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block 2007-07-16 10:48:20 -07:00
Space.c more ACSI removal 2007-07-16 15:02:47 +02:00
a2065.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
a2065.h
ac3200.c
acenic.c
acenic.h
acenic_firmware.h
amd8111e.c
amd8111e.h
apne.c
ariadne.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
ariadne.h
at1700.c
atarilance.c
atp.c
atp.h
au1000_eth.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
au1000_eth.h
ax88796.c ax88796: dev_dbg() wants device, not platform device 2007-07-15 16:40:52 -07:00
b44.c
b44.h
bmac.c
bmac.h
bnx2.c [NET]: Add ethtool support for NETIF_F_IPV6_CSUM devices. 2007-07-14 19:07:52 -07:00
bnx2.h [BNX2]: Print management firmware version. 2007-07-10 22:18:38 -07:00
bnx2_fw.h
bnx2_fw2.h
bsd_comp.c
cassini.c PCI: add pci_try_set_mwi 2007-07-11 16:02:11 -07:00
cassini.h
cs89x0.c
cs89x0.h
de600.c
de600.h
de620.c
de620.h
declance.c
defxx.c
defxx.h
depca.c
depca.h
dgrs.c
dgrs.h
dgrs_asstruct.h
dgrs_bcomm.h
dgrs_es4h.h
dgrs_ether.h
dgrs_firmware.c
dgrs_i82596.h
dgrs_plx9060.h
dl2k.c Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
dl2k.h PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
dm9000.c Blackfin arch: Port the dm9000 driver to Blackfin by using the correct low-level io routines 2007-07-12 12:11:48 +08:00
dm9000.h
dummy.c [RTNETLINK]: rtnl_link: allow specifying initial device address 2007-07-11 19:45:36 -07:00
e100.c PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
e2100.c
eepro.c
eepro100.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
eexpress.c
eexpress.h
epic100.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
eql.c
es3210.c
eth16i.c
ewrk3.c
ewrk3.h
fealnx.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
fec.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
fec.h
forcedeth.c Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2007-07-16 17:48:54 -07:00
gianfar.c
gianfar.h
gianfar_ethtool.c
gianfar_mii.c gianfar: kill unused header 2007-07-16 18:28:05 -04:00
gianfar_mii.h
gianfar_sysfs.c
hamachi.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
hp-plus.c
hp.c
hp100.c
hp100.h
hplance.c
hplance.h
hydra.c
ibmlana.c
ibmlana.h
ibmveth.c sysfs: kill unnecessary attribute->owner 2007-07-11 16:09:06 -07:00
ibmveth.h
ifb.c [RTNETLINK]: rtnl_link: allow specifying initial device address 2007-07-11 19:45:36 -07:00
ioc3-eth.c IOC3: Switch to pci refcounting safe APIs 2007-07-10 12:29:24 -04:00
isa-skeleton.c
iseries_veth.c
jazzsonic.c
lance.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
lasi_82596.c Extract chip specific code out of lasi_82596.c 2007-07-08 22:16:45 -04:00
lib8390.c
lib82596.c Extract chip specific code out of lasi_82596.c 2007-07-08 22:16:45 -04:00
lne390.c
loopback.c
lp486e.c
mac89x0.c
mac8390.c
macb.c macb: Add multicast capability 2007-07-16 18:28:04 -04:00
macb.h macb: Use generic PHY layer 2007-07-16 18:28:04 -04:00
mace.c
mace.h
macmace.c macmace: use "unsigned long flags;" 2007-07-10 12:41:18 -04:00
macsonic.c
macvlan.c [NET]: Add macvlan driver 2007-07-14 18:55:06 -07:00
meth.c
meth.h
mii.c
mipsnet.c
mipsnet.h
mv643xx_eth.c
mv643xx_eth.h
mvme147.c
myri_code.h
myri_sbus.c
myri_sbus.h
natsemi.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
ne-h8300.c
ne.c
ne2.c
ne2k-pci.c
ne3210.c
netconsole.c
netx-eth.c
ni52.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
ni52.h
ni65.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
ni65.h
ni5010.c
ni5010.h
ns83820.c
pasemi_mac.c pasemi_mac: Fix TX interrupt threshold 2007-07-08 22:16:45 -04:00
pasemi_mac.h
pci-skeleton.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
pcnet32.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
plip.c
ppp_async.c
ppp_deflate.c
ppp_generic.c
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c
pppoe.c
pppol2tp.c [PPPOL2TP]: Use proper printf format specifier for size_t. 2007-07-10 22:16:00 -07:00
pppox.c
ps3_gelic_net.c ps3: gigabit ethernet driver for PS3, take3 2007-07-10 14:13:46 -04:00
ps3_gelic_net.h ps3: gigabit ethernet driver for PS3, take3 2007-07-10 14:13:46 -04:00
qla3xxx.c
qla3xxx.h
r8169.c r8169: perform RX config change after mac filtering 2007-07-08 22:16:45 -04:00
rionet.c
rrunner.c rrunner.c:rr_init() must be __devinit 2007-07-10 12:24:42 -04:00
rrunner.h
s2io-regs.h
s2io.c Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2007-07-16 17:48:54 -07:00
s2io.h PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
saa9730.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
saa9730.h
sb1000.c
sb1250-mac.c
sc92031.c
seeq8005.c
seeq8005.h
sgiseeq.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
sgiseeq.h
shaper.c
sis190.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
sis900.c sis900_mii_probe() must be __devinit 2007-07-10 12:24:42 -04:00
sis900.h
skge.c
skge.h
sky2.c sky2: 1.16 version 2007-07-10 12:22:30 -04:00
sky2.h sky2: debug interface 2007-07-10 12:22:28 -04:00
slhc.c
slip.c
slip.h
smc-mca.c
smc-ultra.c
smc-ultra32.c
smc91x.c
smc91x.h
smc911x.c
smc911x.h
smc9194.c
smc9194.h
sni_82596.c Ethernet driver for EISA only SNI RM200/RM400 machines 2007-07-08 22:16:46 -04:00
sonic.c
sonic.h
spider_net.c spidernet: improve interrupt handling 2007-07-10 12:22:30 -04:00
spider_net.h spidernet: Replace literal with const 2007-07-08 22:16:45 -04:00
spider_net_ethtool.c
starfire.c Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
starfire_firmware.h
starfire_firmware.pl
stnic.c
sun3_82586.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
sun3_82586.h
sun3lance.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
sunbmac.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
sunbmac.h
sundance.c Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
sungem.c
sungem.h
sungem_phy.c
sungem_phy.h
sunhme.c PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
sunhme.h
sunlance.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
sunqe.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
sunqe.h
sunvnet.c [SPARC64]: Abstract out mdesc accesses for better MD update handling. 2007-07-16 04:04:28 -07:00
sunvnet.h [SPARC64]: Add Sun LDOM virtual network driver. 2007-07-16 04:03:23 -07:00
tc35815.c [MIPS] tc35815: Load MAC address via platform_device 2007-07-10 17:33:04 +01:00
tg3.c [NET]: Add ethtool support for NETIF_F_IPV6_CSUM devices. 2007-07-14 19:07:52 -07:00
tg3.h [TG3]: Add missing NVRAM strapping. 2007-07-11 19:48:50 -07:00
tlan.c PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
tlan.h
tsi108_eth.c
tsi108_eth.h
tun.c [NET]: Allow group ownership of TUN/TAP devices. 2007-07-10 22:16:42 -07:00
typhoon-firmware.h
typhoon.c Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
typhoon.h
ucc_geth.c QE Ethernet driver writes to wrong register to mask interrupts 2007-07-10 12:24:42 -04:00
ucc_geth.h
ucc_geth_mii.c
ucc_geth_mii.h
via-rhine.c Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
via-velocity.c PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
via-velocity.h
wd.c
yellowfin.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
znet.c
zorro8390.c