1
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
..
aes_ccm.c
aes_ccm.h
aes_cmac.c
aes_cmac.h
agg-rx.c
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_key.c
debugfs_key.h
debugfs_netdev.c
debugfs_netdev.h
debugfs_sta.c
debugfs_sta.h
debugfs.c mac80211: add queue debugfs file 2009-06-15 15:05:57 -04:00
debugfs.h
driver-ops.h
event.c
ht.c
ibss.c
ieee80211_i.h mac80211: disconnect when user changes channel 2009-06-15 15:05:58 -04:00
iface.c
Kconfig mac80211: disable mesh 2009-07-21 12:07:35 -04:00
key.c
key.h
led.c
led.h
main.c
Makefile
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
mesh.c mac80211: Use rcu_barrier() on unload. 2009-06-26 13:51:36 -07:00
mesh.h
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_debugfs.c
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_pid_algo.c
rc80211_pid_debugfs.c
rc80211_pid.h
rx.c mac80211: fix suspend 2009-07-29 14:52:01 -04:00
scan.c
spectmgmt.c
sta_info.c
sta_info.h
tkip.c
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
wme.h
wpa.c
wpa.h