linux/drivers/net/wireless
Luis R. Rodriguez 42935ecaf4 mac80211: redefine usage of the mac80211 workqueue
The mac80211 workqueue exists to enable mac80211 and drivers
to queue their own work on a single threaded workqueue. mac80211
takes care to flush the workqueue during suspend but we never
really had requirements on drivers for how they should use
the workqueue in consideration for suspend.

We extend mac80211 to document how the mac80211 workqueue should
be used, how it should not be used and finally move raw access to
the workqueue to mac80211 only. Drivers and mac80211 use helpers
to queue work onto the mac80211 workqueue:

  * ieee80211_queue_work()
  * ieee80211_queue_delayed_work()

These helpers will now warn if mac80211 already completed its
suspend cycle and someone is trying to queue work. mac80211
flushes the mac80211 workqueue prior to suspend a few times,
but we haven't taken the care to ensure drivers won't add more
work after suspend. To help with this we add a warning when
someone tries to add work and mac80211 already completed the
suspend cycle.

Drivers should ensure they cancel any work or delayed work
in the mac80211 stop() callback.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-08-04 16:44:14 -04:00
..
ath mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
b43 mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
b43legacy mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
hostap hostap_cs: Enable shared interrupts 2009-07-24 15:05:19 -04:00
ipw2x00 drivers/net: Drop unnecessary NULL test 2009-07-24 15:05:12 -04:00
iwlwifi Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2009-07-30 19:26:55 -07:00
iwmc3200wifi Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2009-07-30 19:26:55 -07:00
libertas Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-30 19:22:43 -07:00
libertas_tf mac80211: push rx status into skb->cb 2009-07-10 14:57:54 -04:00
orinoco orinoco: enable cfg80211 "set_channel" operation 2009-08-04 16:43:26 -04:00
p54 mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
prism54 drivers/net/wireless: Use PCI_VDEVICE 2009-07-10 15:02:25 -04:00
rt2x00 mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
rtl818x mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
wl12xx wl1251: remove wl1251_plt_start/stop() 2009-07-24 15:05:29 -04:00
zd1211rw mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
adm8211.c adm8211: remove uneeded code during suspend/resume 2009-07-24 15:05:30 -04:00
adm8211.h
airo_cs.c
airo.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-30 19:22:43 -07:00
airo.h
arlan-main.c arlan: inverted logic? 2009-07-24 15:05:27 -04:00
arlan-proc.c
arlan.h
at76c50x-usb.c mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
at76c50x-usb.h
atmel_cs.c Wireless: remove driver_data direct access of struct device 2009-05-06 15:15:01 -04:00
atmel_pci.c
atmel.c net: use NETDEV_TX_OK instead of 0 in ndo_start_xmit() functions 2009-07-05 19:16:04 -07:00
atmel.h
i82586.h
i82593.h
Kconfig wireless: use menuconfig for WLAN_PRE80211 and WLAN_80211 2009-08-04 16:43:21 -04:00
mac80211_hwsim.c wireless: remove print_mac uses 2009-07-24 15:05:19 -04:00
Makefile iwmc3200wifi: Add new Intel Wireless Multicomm 802.11 driver 2009-05-22 14:06:02 -04:00
mwl8k.c wireless: remove print_mac uses 2009-07-24 15:05:19 -04:00
netwave_cs.c net: use NETDEV_TX_OK instead of 0 in ndo_start_xmit() functions 2009-07-05 19:16:04 -07:00
ray_cs.c ray_cs: remove bogus NULL check at head of ray_get_wireless_stats 2009-07-29 15:45:59 -04:00
ray_cs.h
rayctl.h
rndis_wlan.c rndis_wlan: convert set/get txpower to cfg80211 2009-07-10 14:57:53 -04:00
strip.c Revert "NET: Fix locking issues in PPP, 6pack, mkiss and strip line disciplines." 2009-07-14 13:13:41 -07:00
wavelan_cs.c net: convert remaining non-symbolic return values in ndo_start_xmit() functions 2009-07-05 19:23:38 -07:00
wavelan_cs.h
wavelan_cs.p.h
wavelan.c net: convert remaining non-symbolic return values in ndo_start_xmit() functions 2009-07-05 19:23:38 -07:00
wavelan.h
wavelan.p.h
wl3501_cs.c net: convert remaining non-symbolic return values in ndo_start_xmit() functions 2009-07-05 19:23:38 -07:00
wl3501.h
zd1201.c net: use NETDEV_TX_OK instead of 0 in ndo_start_xmit() functions 2009-07-05 19:16:04 -07:00
zd1201.h