alistair23-linux/net/mac80211
Johannes Berg bc4934bc61 mac80211: fix work removal on deauth request
When deauth is requested while an auth or assoc
work item is in progress, we currently delete it
without regard for any state it might need to
clean up. Fix it by cleaning up for those items.

In the case Pontus found, the problem manifested
itself as such:

authenticate with 00:23:69:aa:dd:7b (try 1)
authenticated
failed to insert Dummy STA entry for the AP (error -17)
deauthenticating from 00:23:69:aa:dd:7b by local choice (reason=2)

It could also happen differently if the driver
uses the tx_sync callback.

We can't just call the ->done() method of the work
items because that will lock up due to the locking
in cfg80211. This fix isn't very clean, but that
seems acceptable since I have patches pending to
remove this code completely.

Cc: stable@vger.kernel.org
Reported-by: Pontus Fuchs <pontus.fuchs@gmail.com>
Tested-by: Pontus Fuchs <pontus.fuchs@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-01-18 14:38:06 -05:00
..
aes_ccm.c
aes_ccm.h
aes_cmac.c
aes_cmac.h
agg-rx.c net: reintroduce missing rcu_assign_pointer() calls 2012-01-12 12:26:56 -08:00
agg-tx.c mac80211: split addba retries in time 2011-12-19 14:31:37 -05:00
cfg.c mac80211: fix no-op authorized transitions 2012-01-13 14:40:58 -05:00
cfg.h
chan.c
debugfs.c mac80211: remove debugfs noack test 2011-11-28 14:34:15 -05:00
debugfs.h
debugfs_key.c mac80211: fix debugfs key->station symlink 2012-01-18 14:38:05 -05:00
debugfs_key.h
debugfs_netdev.c mac80211: count authorized stations per BSS 2011-12-15 14:46:34 -05:00
debugfs_netdev.h
debugfs_sta.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2011-12-02 15:44:03 -05:00
debugfs_sta.h
driver-ops.h mac80211: do not pass AP VLAN vif pointers to drivers 2011-11-28 14:43:52 -05:00
driver-trace.c
driver-trace.h mac80211: remove tracing config symbol 2011-11-28 14:44:09 -05:00
event.c
ht.c mac80211: Use appropriate TID for sending BAR, ADDBA and DELBA frames 2011-12-15 14:46:35 -05:00
ibss.c net: reintroduce missing rcu_assign_pointer() calls 2012-01-12 12:26:56 -08:00
ieee80211_i.h mac80211: remove dead code 2012-01-04 14:31:47 -05:00
iface.c mac80211: refactor station state transitions 2011-12-15 14:46:34 -05:00
Kconfig mac80211: remove tracing config symbol 2011-11-28 14:44:09 -05:00
key.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux 2011-11-22 14:05:46 -05:00
key.h
led.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
led.h
main.c mac80211: don't check sdata_running in vif notifier 2011-12-13 15:34:15 -05:00
Makefile mac80211: remove tracing config symbol 2011-11-28 14:44:09 -05:00
mesh.c {nl,cfg,mac}80211: implement dot11MeshHWMPperrMinInterval 2011-11-28 14:44:06 -05:00
mesh.h mac80211: don't initiate path discovery when forwarding frame with unknown DA 2011-11-28 14:44:07 -05:00
mesh_hwmp.c mac80211: Use the right headroom size for mesh mgmt frames 2012-01-18 14:38:06 -05:00
mesh_pathtbl.c mac80211: don't initiate path discovery when forwarding frame with unknown DA 2011-11-28 14:44:07 -05:00
mesh_plink.c mac80211: Use the right headroom size for mesh mgmt frames 2012-01-18 14:38:06 -05:00
michael.c
michael.h
mlme.c mac80211: fix work removal on deauth request 2012-01-18 14:38:06 -05:00
offchannel.c mac80211: remove dead code 2012-01-04 14:31:47 -05:00
pm.c mac80211: verify virtual interfaces in driver API 2011-11-09 16:01:02 -05:00
rate.c net: Fix files explicitly needing to include module.h 2011-10-31 19:30:28 -04:00
rate.h
rc80211_minstrel.c minstrel: Remove unused function parameter in calc_rate_durations() 2011-11-11 12:32:52 -05:00
rc80211_minstrel.h
rc80211_minstrel_debugfs.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
rc80211_minstrel_ht.c minstrel_ht: Remove unused function parameters 2011-11-17 15:43:58 -05:00
rc80211_minstrel_ht.h
rc80211_minstrel_ht_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
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
rx.c Net, mac80211: Fix resource leak in ieee80211_rx_h_mesh_fwding() 2012-01-16 15:01:15 -05:00
scan.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-01-05 10:13:24 -05:00
spectmgmt.c
sta_info.c mac80211: Fix possible race between sta_unblock and network softirq 2012-01-17 10:12:27 -05:00
sta_info.h cfg80211: Return beacon loss count in station 2011-12-19 14:34:13 -05:00
status.c mac80211: Make use of ieee80211_is_* functions in tx status path 2011-12-13 15:30:46 -05:00
tkip.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
tkip.h
tx.c mac80211: fix tx->skb NULL pointer dereference 2012-01-16 15:01:16 -05:00
util.c mac80211: Call driver commands after drv_start in mac80211 restart code 2012-01-04 14:31:46 -05:00
wep.c mac80211: use skb list for fragments 2011-11-21 16:20:42 -05:00
wep.h
wme.c mac80211: fix forwarded mesh frame queue mapping 2011-11-28 14:44:05 -05:00
wme.h mac80211: fix forwarded mesh frame queue mapping 2011-11-28 14:44:05 -05:00
work.c mac80211: revert on-channel work optimisations 2011-11-30 15:08:31 -05:00
wpa.c mac80211: fix tx->skb NULL pointer dereference 2012-01-16 15:01:16 -05:00
wpa.h mac80211: fix tx->skb NULL pointer dereference 2012-01-16 15:01:16 -05:00