linux/net/mac80211
Johannes Berg 89c3a8aca2 mac80211: fix suspend
Jan reported that his b43-based laptop hangs during suspend.
The problem turned out to be mac80211 asking the driver to
stop the hardware before removing interfaces, and interface
removal caused b43 to touch the hardware (while down, which
causes the hang).

This patch fixes mac80211 to do reorder these operations to
have them in the correct order -- first remove interfaces
and then stop the hardware. Some more code is necessary to
be able to do so in a race-free manner, in particular it is
necessary to not process frames received during quiescing.

Fixes http://bugzilla.kernel.org/show_bug.cgi?id=13337.

Reported-by: Jan Scholz <scholz@fias.uni-frankfurt.de>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-07-29 14:52:01 -04:00
..
Kconfig mac80211: disable mesh 2009-07-21 12:07:35 -04:00
Makefile
aes_ccm.c
aes_ccm.h
aes_cmac.c
aes_cmac.h
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: Fix the way ADDBA request count being modified 2009-06-10 13:28:38 -04:00
cfg.c mac80211: don't use master netdev name 2009-06-10 13:28:39 -04:00
cfg.h
debugfs.c mac80211: add queue debugfs file 2009-06-15 15:05:57 -04:00
debugfs.h
debugfs_key.c
debugfs_key.h
debugfs_netdev.c
debugfs_netdev.h
debugfs_sta.c
debugfs_sta.h
driver-ops.h cfg80211: add rfkill support 2009-06-03 14:06:14 -04:00
event.c nl80211: Add Michael MIC failure event 2009-04-22 16:54:28 -04:00
ht.c cfg80211: clean up includes 2009-04-22 16:57:17 -04:00
ibss.c mac80211: fix parameter confusion when finding IBSS 2009-05-20 14:46:36 -04:00
ieee80211_i.h mac80211: disconnect when user changes channel 2009-06-15 15:05:58 -04:00
iface.c cfg80211: add rfkill support 2009-06-03 14:06:14 -04:00
key.c nl80211: Validate NL80211_ATTR_KEY_SEQ length 2009-05-20 14:46:25 -04:00
key.h nl80211: Add RSC configuration for new keys 2009-05-13 15:44:39 -04:00
led.c
led.h
main.c mac80211: do not pass PS frames out of mac80211 again 2009-06-10 13:28:37 -04:00
mesh.c mac80211: Use rcu_barrier() on unload. 2009-06-26 13:51:36 -07:00
mesh.h wireless: move some utility functions from mac80211 to cfg80211 2009-05-22 14:06:02 -04:00
mesh_hwmp.c mac80211: fix allocation in mesh_queue_preq 2009-07-07 12:55:27 -04:00
mesh_pathtbl.c mac80211: use correct address for mesh Path Error 2009-07-21 12:07:40 -04:00
mesh_plink.c mac80211: cancel/restart all timers across suspend/resume 2009-05-20 14:46:25 -04:00
michael.c
michael.h
mlme.c mac80211: do not queue work after suspend in the dynamic ps timer 2009-07-27 15:19:38 -04:00
pm.c mac80211: fix suspend 2009-07-29 14:52:01 -04:00
rate.c
rate.h
rc80211_minstrel.c mac80211: minstrel: avoid accessing negative indices in rix_to_ndx() 2009-07-07 12:55:28 -04:00
rc80211_minstrel.h
rc80211_minstrel_debugfs.c
rc80211_pid.h
rc80211_pid_algo.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-05-18 21:08:20 -07:00
rc80211_pid_debugfs.c
rx.c mac80211: fix suspend 2009-07-29 14:52:01 -04:00
scan.c mac80211: cancel/restart all timers across suspend/resume 2009-05-20 14:46:25 -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 kernel-doc 2009-05-20 14:46:32 -04:00
tkip.c mac80211: add driver ops wrappers 2009-05-06 15:14:37 -04:00
tkip.h
tx.c mac80211: fix injection in monitor mode 2009-07-21 12:07:38 -04:00
util.c mac80211: disconnect when user changes channel 2009-06-15 15:05:58 -04:00
wep.c
wep.h
wext.c mac80211: disconnect when user changes channel 2009-06-15 15:05:58 -04:00
wme.c mac80211: do not pass PS frames out of mac80211 again 2009-06-10 13:28:37 -04:00
wme.h
wpa.c nl80211: Add Michael MIC failure event 2009-04-22 16:54:28 -04:00
wpa.h