mac80211: always allow calling ieee80211_connection_loss()
authorJohannes Berg <johannes.berg@intel.com>
Tue, 29 Jan 2013 12:13:50 +0000 (13:13 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 4 Feb 2013 15:09:58 +0000 (16:09 +0100)
commit682bd38b8ac1fa3e84e84cddd1f1d7eeebce1212
treeb05470db358c1a0b86552e5f659a098fc2968bfa
parenteef9e54ce8b8dd08e281e0c399cced807c98959e
mac80211: always allow calling ieee80211_connection_loss()

With multi-channel, there's a corner case where a driver
doesn't receive a beacon soon enough to be able to sync
its timers with the AP. In this case, the only recovery
(after trying again) is to disconnect from the AP. Allow
calling ieee80211_connection_loss() for such cases. To
make that possible, modify the work function to not rely
on the IEEE80211_HW_CONNECTION_MONITOR flag but use new
state kept in the interface instead.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/mac80211.h
net/mac80211/ieee80211_i.h
net/mac80211/mlme.c