linux/net/mac80211
Thomas Pedersen ecccd072b0 mac80211: fix mesh deadlock
The patch "cfg80211/mac80211: use cfg80211 wdev mutex in
mac80211" introduced several deadlocks by converting the
ifmsh->mtx to wdev->mtx. Solve these by:

1. drop the cancel_work_sync() in ieee80211_stop_mesh().
   Instead make the mesh work conditional on whether the mesh
   is running or not.
2. lock the mesh work with sdata_lock() to protect beacon
   updates and prevent races with wdev->mesh_id_len or
   cfg80211.

Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-06-11 13:14:42 +02:00
..
aes_ccm.c wireless: move crypto constants to ieee80211.h 2013-05-16 22:39:41 +02:00
aes_ccm.h mac80211: use AES_BLOCK_SIZE 2011-07-08 11:11:24 -04:00
aes_cmac.c mac80211: include export.h in aes_cmac 2012-11-07 18:01:54 +01:00
aes_cmac.h
agg-rx.c mac80211: improve aggregation debug messages 2013-01-18 21:55:15 +01:00
agg-tx.c mac80211: fix aggregation state with current drivers 2013-01-24 15:43:51 +01:00
cfg.c mac80211: fix sdata locking around __ieee80211_request_smps 2013-06-03 13:51:59 +02:00
cfg.h
chan.c Merge remote-tracking branch 'wireless-next/master' into mac80211-next 2013-04-22 15:31:43 +02:00
debug.h mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
debugfs_key.c mac80211: move sdata debugfs dir to vif 2013-03-18 20:10:04 +01:00
debugfs_key.h
debugfs_netdev.c cfg80211/mac80211: use cfg80211 wdev mutex in mac80211 2013-05-25 00:02:16 +02:00
debugfs_netdev.h
debugfs_sta.c mac80211: add beacon stats to debugfs 2013-04-08 09:16:54 +02:00
debugfs_sta.h
debugfs.c mac80211: remove IEEE80211_HW_SCAN_WHILE_IDLE 2013-02-11 18:45:01 +01:00
debugfs.h mac80211: use __printf attribute in debugfs 2012-10-18 09:01:57 +02:00
driver-ops.h mac80211: support active monitor interfaces 2013-05-29 09:11:56 +02:00
event.c
ht.c cfg80211/mac80211: use cfg80211 wdev mutex in mac80211 2013-05-25 00:02:16 +02:00
ibss.c cfg80211/mac80211: use cfg80211 wdev mutex in mac80211 2013-05-25 00:02:16 +02:00
ieee80211_i.h mac80211: Use suitable semantics for beacon availability indication 2013-06-05 09:12:20 +02:00
iface.c mac80211: support active monitor interfaces 2013-05-29 09:11:56 +02:00
Kconfig Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
key.c wireless: move crypto constants to ieee80211.h 2013-05-16 22:39:41 +02:00
key.h wireless: move crypto constants to ieee80211.h 2013-05-16 22:39:41 +02:00
led.c leds: Rename led_brightness_set() to led_set_brightness() 2012-07-24 07:52:34 +08:00
led.h
main.c cfg80211: take WoWLAN support information out of wiphy struct 2013-06-03 18:43:34 +02:00
Makefile mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
mesh_hwmp.c mac80211: parse VHT channel switch IEs 2013-04-16 15:29:45 +02:00
mesh_pathtbl.c mac80211: return new mpath from mesh_path_add() 2013-04-08 09:16:59 +02:00
mesh_plink.c mac80211: fix mesh deadlock 2013-06-11 13:14:42 +02:00
mesh_ps.c mac80211: consolidate MBSS change notification 2013-02-15 09:41:09 +01:00
mesh_sync.c mac80211: clean up mesh code 2013-02-15 15:46:37 +01:00
mesh.c mac80211: fix mesh deadlock 2013-06-11 13:14:42 +02:00
mesh.h mac80211: set mesh formation field properly 2013-06-03 17:03:18 +02:00
michael.c
michael.h
mlme.c mac80211: Use suitable semantics for beacon availability indication 2013-06-05 09:12:20 +02:00
offchannel.c Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2013-04-10 14:09:54 -04:00
pm.c mac80211: use synchronize_rcu() with rcu_barrier() 2013-04-22 15:40:39 +02:00
rate.c mac80211: fix spurious RCU warning and update documentation 2013-05-16 22:38:05 +02:00
rate.h mac80211: track number of spatial streams 2013-02-15 09:41:31 +01:00
rc80211_minstrel_debugfs.c mac80211: cosmetics for minstrel_debugfs 2013-04-17 17:08:23 +02:00
rc80211_minstrel_ht_debugfs.c mac80211/minstrel_ht: add support for using CCK rates 2013-02-13 10:56:33 +01:00
rc80211_minstrel_ht.c mac80211/minstrel_ht: use the new rate control API 2013-04-22 16:16:41 +02:00
rc80211_minstrel_ht.h mac80211/minstrel_ht: use the new rate control API 2013-04-22 16:16:41 +02:00
rc80211_minstrel.c mac80211/minstrel: use the new rate control API 2013-04-22 16:16:41 +02:00
rc80211_minstrel.h mac80211/minstrel: use the new rate control API 2013-04-22 16:16:41 +02:00
rc80211_pid_algo.c net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
rc80211_pid_debugfs.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
rc80211_pid.h
rx.c cfg80211/mac80211: clean up cfg80211 SME APIs 2013-06-04 13:03:10 +02:00
scan.c mac80211: parse VHT channel switch IEs 2013-04-16 15:29:45 +02:00
spectmgmt.c mac80211: Remove unnecessary OOM logging messages 2011-09-13 15:45:02 -04:00
sta_info.c mac80211: add a tx control flag to indicate PS-Poll/uAPSD response 2013-06-04 12:41:36 +02:00
sta_info.h wireless: fix kernel-doc 2013-06-05 09:33:32 +02:00
status.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
tkip.c mac80211: use just spin_lock() in ieee80211_get_tkip_p2k() 2013-05-16 22:38:06 +02:00
tkip.h
trace.c mac80211: trace debug messages 2012-06-24 11:33:18 +02:00
trace.h mac80211: support secondary channel offset in CSA 2013-04-16 15:29:44 +02:00
tx.c mac80211: don't check local mesh TTL on TX 2013-06-03 16:53:51 +02:00
util.c mac80211: Use suitable semantics for beacon availability indication 2013-06-05 09:12:20 +02:00
vht.c mac80211: restrict peer's VHT capabilities to own 2013-03-06 16:36:03 +01:00
wep.c wireless: move crypto constants to ieee80211.h 2013-05-16 22:39:41 +02:00
wep.h mac80211: move RX WEP weak IV counting 2012-03-13 14:54:16 -04:00
wme.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
wme.h mac80211: save wmm_acm per sdata 2012-06-20 17:35:22 +02:00
wpa.c wireless: move crypto constants to ieee80211.h 2013-05-16 22:39:41 +02:00
wpa.h mac80211: fix tx->skb NULL pointer dereference 2012-01-16 15:01:16 -05:00