linux/drivers/net/wireless
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
..
bcm43xx PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
hostap PCI: remove useless pci driver method 2007-07-11 16:02:08 -07:00
libertas Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
prism54 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
zd1211rw 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
airo_cs.c [PATCH] pcmcia: conf.ConfigBase and conf.Present consolidation 2006-12-04 20:12:02 -05:00
airo.c Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
airo.h
airport.c Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
arlan-main.c [ETH]: Make eth_type_trans set skb->dev like the other *_type_trans 2007-04-25 22:24:30 -07:00
arlan-proc.c [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
arlan.h
atmel_cs.c [PATCH] pcmcia: conf.ConfigBase and conf.Present consolidation 2006-12-04 20:12:02 -05:00
atmel_pci.c
atmel.c [SK_BUFF]: Introduce skb_copy_from_linear_data{_offset} 2007-04-25 22:28:23 -07:00
atmel.h
hermes_rid.h
hermes.c
hermes.h
i82586.h
i82593.h
ipw2100.c [PATCH] ipw2100: RF kill switch timer power save 2007-07-10 13:59:48 -04:00
ipw2100.h
ipw2200.c [PATCH] ipw2200: rf kill switch polling power saving 2007-07-10 13:59:48 -04:00
ipw2200.h
Kconfig [PATCH] Add rtl8187 wireless driver 2007-07-08 22:16:36 -04:00
Makefile [PATCH] Add rtl8187 wireless driver 2007-07-08 22:16:36 -04:00
netwave_cs.c [ETH]: Make eth_type_trans set skb->dev like the other *_type_trans 2007-04-25 22:24:30 -07:00
orinoco_cs.c Network: convert network devices to use struct device instead of class_device 2007-02-07 10:37:11 -08:00
orinoco_nortel.c
orinoco_pci.c
orinoco_pci.h
orinoco_plx.c
orinoco_tmd.c
orinoco.c [SK_BUFF]: Introduce skb_mac_header() 2007-04-25 22:24:41 -07:00
orinoco.h
ray_cs.c [SK_BUFF]: Introduce skb_copy_from_linear_data{_offset} 2007-04-25 22:28:23 -07:00
ray_cs.h
rayctl.h
rtl818x.h [PATCH] rtl8187: add header blocks and indicate origin of magic values 2007-07-08 22:16:37 -04:00
rtl8187_dev.c [PATCH] rtl8187: add header blocks and indicate origin of magic values 2007-07-08 22:16:37 -04:00
rtl8187_rtl8225.c [PATCH] rtl8187: fix endianness issue in rtl8225 register writing 2007-07-10 13:51:38 -04:00
rtl8187_rtl8225.h [PATCH] rtl8187: add header blocks and indicate origin of magic values 2007-07-08 22:16:37 -04:00
rtl8187.h [PATCH] rtl8187: add header blocks and indicate origin of magic values 2007-07-08 22:16:37 -04:00
spectrum_cs.c Network: convert network devices to use struct device instead of class_device 2007-02-07 10:37:11 -08:00
strip.c [NET]: Rework dev_base via list_head (v3) 2007-05-03 15:13:45 -07:00
wavelan_cs.c Fix misspellings collected by members of KJ list. 2007-05-09 07:14:03 +02:00
wavelan_cs.h
wavelan_cs.p.h Fix misspellings collected by members of KJ list. 2007-05-09 07:14:03 +02:00
wavelan.c [SK_BUFF]: Introduce skb_copy_from_linear_data{_offset} 2007-04-25 22:28:23 -07:00
wavelan.h
wavelan.p.h [PATCH] wavelan: Use ARRAY_SIZE macro when appropriate 2007-02-14 15:45:04 -05:00
wl3501_cs.c [NET]: Kill eth_copy_and_sum(). 2007-07-10 22:08:12 -07:00
wl3501.h
zd1201.c [SK_BUFF]: Introduce skb_copy_from_linear_data{_offset} 2007-04-25 22:28:23 -07:00
zd1201.h