linux/net/mac80211
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
..
aes_ccm.c mac80211: aes_ccm.c remove crypto wrapper and extra args 2008-07-08 14:16:02 -04:00
aes_ccm.h mac80211: pass scratch buffer directly, remove additional pointers 2008-07-08 14:16:02 -04:00
aes_cmac.c mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00
aes_cmac.h mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00
agg-rx.c mac80211: Add a timeout for frames in the RX reorder buffer 2009-05-06 15:15:04 -04:00
agg-tx.c mac80211: remove master netdev 2009-07-24 15:05:30 -04:00
cfg.c cfg80211: make aware of net namespaces 2009-07-27 15:24:07 -04:00
cfg.h
debugfs.c mac80211: remove master netdev 2009-07-24 15:05:30 -04:00
debugfs.h
debugfs_key.c mac80211: 802.11w - Use BIP (AES-128-CMAC) 2009-01-29 16:00:03 -05:00
debugfs_key.h mac80211: 802.11w - Use BIP (AES-128-CMAC) 2009-01-29 16:00:03 -05:00
debugfs_netdev.c mac80211: rework MLME for multiple authentications 2009-07-10 15:02:30 -04:00
debugfs_netdev.h mac80211: revamp virtual interface handling 2008-07-14 14:30:07 -04:00
debugfs_sta.c mac80211: improve per-sta debugfs 2009-07-10 14:57:54 -04:00
debugfs_sta.h mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
driver-ops.h mac80211: driver operation debugging 2009-07-24 15:05:06 -04:00
driver-trace.c mac80211: fix sparse warnings/errors 2009-08-04 16:43:25 -04:00
driver-trace.h mac80211: fix spare warnings in driver-trace.h 2009-07-24 15:05:27 -04:00
event.c cfg80211: use proper allocation flags 2009-07-10 15:01:49 -04:00
ht.c cfg80211: clean up includes 2009-04-22 16:57:17 -04:00
ibss.c mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
ieee80211_i.h mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
iface.c mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
Kconfig cfg80211: self-contained wext handling where possible 2009-07-29 15:46:20 -04:00
key.c mac80211: fix todo lock 2009-07-10 15:01:48 -04:00
key.h nl80211: Add RSC configuration for new keys 2009-05-13 15:44:39 -04:00
led.c mac80211: rename files 2008-04-08 16:44:45 -04:00
led.h mac80211: rename files 2008-04-08 16:44:45 -04:00
main.c mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
Makefile cfg80211: self-contained wext handling where possible 2009-07-29 15:46:20 -04:00
mesh.c mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
mesh.h mac80211: push rx status into skb->cb 2009-07-10 14:57:54 -04:00
mesh_hwmp.c mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
mesh_pathtbl.c mac80211: Fix regression in mesh forwarding path. 2009-07-24 15:05:31 -04:00
mesh_plink.c mac80211: cancel/restart all timers across suspend/resume 2009-05-20 14:46:25 -04:00
michael.c mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
michael.h mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
mlme.c mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
pm.c mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
rate.c mac80211: remove master netdev 2009-07-24 15:05:30 -04:00
rate.h mac80211: rate control status only for controlled packets 2009-03-27 20:13:15 -04:00
rc80211_minstrel.c mac80211: add helper for management / no-ack frame rate decision 2009-07-24 15:05:16 -04:00
rc80211_minstrel.h minstrel: improve performance for non-MRR drivers 2008-10-31 19:00:36 -04:00
rc80211_minstrel_debugfs.c mac80211: correct warnings in minstrel rate control algorithm 2008-10-27 17:46:11 -04:00
rc80211_pid.h mac80211/drivers: rewrite the rate control API 2008-10-31 19:00:23 -04:00
rc80211_pid_algo.c mac80211: add helper for management / no-ack frame rate decision 2009-07-24 15:05:16 -04:00
rc80211_pid_debugfs.c mac80211/drivers: rewrite the rate control API 2008-10-31 19:00:23 -04:00
rx.c 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
scan.c mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
spectmgmt.c mac80211: move channel switch code 2009-05-20 14:46:25 -04:00
sta_info.c mac80211: extend sta kdoc - explain when they are added 2009-06-03 14:06:15 -04:00
sta_info.h mac80211: fix PS-poll response, race 2009-07-27 15:24:19 -04:00
tkip.c mac80211: add driver ops wrappers 2009-05-06 15:14:37 -04:00
tkip.h mac80211: tkip.c consolidate tkip IV writing in helper 2008-06-14 12:18:13 -04:00
tx.c mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
util.c mac80211: redefine usage of the mac80211 workqueue 2009-08-04 16:44:14 -04:00
wep.c cfg80211: rework key operation 2009-07-24 15:05:09 -04:00
wep.h cfg80211: rework key operation 2009-07-24 15:05:09 -04:00
wme.c mac80211: remove master netdev 2009-07-24 15:05:30 -04:00
wme.h mac80211: remove master netdev 2009-07-24 15:05:30 -04:00
wpa.c cfg80211: use proper allocation flags 2009-07-10 15:01:49 -04:00
wpa.h mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00