aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_i.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-12-23 07:15:33 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-12-28 16:54:52 -0500
commit63f170e0c80a131cdd549fab7afb5036009944fc (patch)
tree38eea09fd8ac9a4199f30ff9f6fba39e6c8d58ed /net/mac80211/ieee80211_i.h
parenta80f7c0b088187c8471b441d461e937991870661 (diff)
mac80211: let cfg80211 manage auth state
mac80211 currently hangs on to the auth state by keeping it on the work list. That can lead to confusing behaviour like rejecting scans while authenticated to any AP (but not yet associated.) It also means that it needs to keep track of the work struct while associated for when it gets disassociated (or disassociates.) Change this to free the work struct after the authentication completed successfully and allocate a new one for associating, thereby letting cfg80211 manage the auth state. Another change necessary for this is to tell cfg80211 about all unicast deauth frames sent to mac80211 since now it can no longer check the auth state, but that check was racy anyway. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r--net/mac80211/ieee80211_i.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index adeae03c26a3..e21e0301548b 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -228,7 +228,7 @@ struct mesh_preq_queue {
228}; 228};
229 229
230enum ieee80211_mgd_state { 230enum ieee80211_mgd_state {
231 IEEE80211_MGD_STATE_IDLE, 231 IEEE80211_MGD_STATE_INVALID,
232 IEEE80211_MGD_STATE_PROBE, 232 IEEE80211_MGD_STATE_PROBE,
233 IEEE80211_MGD_STATE_AUTH, 233 IEEE80211_MGD_STATE_AUTH,
234 IEEE80211_MGD_STATE_ASSOC, 234 IEEE80211_MGD_STATE_ASSOC,
@@ -285,7 +285,6 @@ struct ieee80211_if_managed {
285 285
286 struct mutex mtx; 286 struct mutex mtx;
287 struct ieee80211_bss *associated; 287 struct ieee80211_bss *associated;
288 struct ieee80211_mgd_work *old_associate_work;
289 struct list_head work_list; 288 struct list_head work_list;
290 289
291 u8 bssid[ETH_ALEN]; 290 u8 bssid[ETH_ALEN];