mac80211: let cfg80211 manage auth state
authorJohannes Berg <johannes@sipsolutions.net>
Wed, 23 Dec 2009 12:15:33 +0000 (13:15 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 28 Dec 2009 21:54:52 +0000 (16:54 -0500)
commit63f170e0c80a131cdd549fab7afb5036009944fc
tree38eea09fd8ac9a4199f30ff9f6fba39e6c8d58ed
parenta80f7c0b088187c8471b441d461e937991870661
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>
net/mac80211/ieee80211_i.h
net/mac80211/mlme.c