alistair23-linux/net/mac80211
Luis R. Rodriguez b98c06b6de mac80211: fix race with suspend and dynamic_ps_disable_work
When mac80211 suspends it calls a driver's suspend callback
as a last step and after that the driver assumes no calls will
be made to it until we resume and its start callback is kicked.
If such calls are made, however, suspend can end up throwing
hardware in an unexpected state and making the device unusable
upon resume.

Fix this by preventing mac80211 to schedule dynamic_ps_disable_work
by checking for when mac80211 starts to suspend and starts
quiescing. Frames should be allowed to go through though as
that is part of the quiescing steps and we do not flush the
mac80211 workqueue since it was already done towards the
beginning of suspend cycle.

The other mac80211 issue will be hanled in the next patch.

For further details see refer to the thread:

http://marc.info/?t=126144866100001&r=1&w=2

Cc: stable@kernel.org
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-12-28 16:20:04 -05:00
..
aes_ccm.c
aes_ccm.h
aes_cmac.c
aes_cmac.h
agg-rx.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-12-01 22:13:38 -08:00
agg-tx.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-12-01 22:13:38 -08:00
cfg.c wireless: correctly report signal value for IEEE80211_HW_SIGNAL_UNSPEC 2009-12-09 15:10:08 -05:00
cfg.h
debugfs.c mac80211: make software rate control optional 2009-11-18 17:09:24 -05:00
debugfs.h cfg80211/mac80211: use debugfs_remove_recursive 2009-10-30 16:49:18 -04:00
debugfs_key.c cfg80211/mac80211: use debugfs_remove_recursive 2009-10-30 16:49:18 -04:00
debugfs_key.h
debugfs_netdev.c mac80211: add nl80211/cfg80211 handling of the new mesh root mode option. 2009-11-13 17:43:57 -05:00
debugfs_netdev.h
debugfs_sta.c mac80211: add per-station HT capability file 2009-11-19 11:09:08 -05:00
debugfs_sta.h
driver-ops.h mac80211: convert aggregation to operate on vifs/stas 2009-11-18 17:09:15 -05:00
driver-trace.c
driver-trace.h mac80211: log more data when tracing 2009-11-28 15:05:03 -05:00
event.c
ht.c mac80211: fix peer HT capabilities 2009-12-21 11:32:27 -05:00
ibss.c mac80211: fix ibss join with fixed-bssid 2009-12-28 15:56:35 -05:00
ieee80211_i.h mac80211: Fix dynamic power save for scanning. 2009-12-07 16:51:18 -05:00
iface.c mac80211: Speedup ieee80211_remove_interfaces() 2009-11-25 13:49:49 -05:00
Kconfig mac80211: add MAC80211_VERBOSE_MHWMP_DEBUG 2009-11-11 15:23:58 -05:00
key.c
key.h cfg80211/mac80211: use debugfs_remove_recursive 2009-10-30 16:49:18 -04:00
led.c
led.h
main.c mac80211: Add define for TX headroom reserved by mac80211 itself. 2009-12-14 14:22:31 -05:00
Makefile mac80211: move TX status handling 2009-11-18 17:09:27 -05:00
mesh.c net/mac80211: Correct size given to memset 2009-12-10 16:09:52 -05:00
mesh.h mac80211: Revert 'Use correct sign for mesh active path refresh' 2009-12-10 16:12:52 -05:00
mesh_hwmp.c mac80211: Revert 'Use correct sign for mesh active path refresh' 2009-12-10 16:12:52 -05:00
mesh_pathtbl.c mac80211: fix endianess on mesh_path_error_tx() calls 2009-11-19 11:38:24 -05:00
mesh_plink.c mac80211: remove encrypt parameter from ieee80211_tx_skb 2009-11-18 17:09:27 -05:00
michael.c
michael.h
mlme.c mac80211: fix WMM AP settings application 2009-12-21 11:32:28 -05:00
pm.c
rate.c mac80211: make software rate control optional 2009-11-18 17:09:24 -05:00
rate.h mac80211: make software rate control optional 2009-11-18 17:09:24 -05:00
rc80211_minstrel.c
rc80211_minstrel.h
rc80211_minstrel_debugfs.c
rc80211_pid.h
rc80211_pid_algo.c
rc80211_pid_debugfs.c
rx.c mac80211: Fixed bug in mesh portal paths 2009-12-10 16:09:52 -05:00
scan.c mac80211: Fix dynamic power save for scanning. 2009-12-07 16:51:18 -05:00
spectmgmt.c mac80211: remove encrypt parameter from ieee80211_tx_skb 2009-11-18 17:09:27 -05:00
sta_info.c mac80211: make software rate control optional 2009-11-18 17:09:24 -05:00
sta_info.h mac80211: Fix missing kernel-doc notation 2009-11-23 17:05:40 -05:00
status.c mac80211: Fix TX status reporting for injected data frames 2009-12-04 14:16:23 -05:00
tkip.c mac80211: use fixed broadcast address 2009-11-18 17:09:18 -05:00
tkip.h
tx.c mac80211: fix race with suspend and dynamic_ps_disable_work 2009-12-28 16:20:04 -05:00
util.c mac80211: Fix bug in computing crc over dynamic IEs in beacon 2009-12-07 16:51:24 -05:00
wep.c mac80211: trim RX data 2009-11-18 17:09:17 -05:00
wep.h
wme.c
wme.h
wpa.c mac80211: trim RX data 2009-11-18 17:09:17 -05:00
wpa.h