mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 02:19:51 +00:00
mac80211: stop polling in disassociation
Stop connection monitor poll during disassociation. This clears the polling flags and if a scan was deferred it will be run. Without this fix, if a scan was deferred due to connection monitoring while disassociation happens, this scan blocks further scan requests until interface down/up which causes problems connecting to another AP. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
554a43d5e7
commit
79543d8eec
1 changed files with 2 additions and 2 deletions
|
@ -1352,6 +1352,8 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
|
||||||
if (WARN_ON(!ifmgd->associated))
|
if (WARN_ON(!ifmgd->associated))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
ieee80211_stop_poll(sdata);
|
||||||
|
|
||||||
memcpy(bssid, ifmgd->associated->bssid, ETH_ALEN);
|
memcpy(bssid, ifmgd->associated->bssid, ETH_ALEN);
|
||||||
|
|
||||||
ifmgd->associated = NULL;
|
ifmgd->associated = NULL;
|
||||||
|
@ -2612,8 +2614,6 @@ static void ieee80211_sta_connection_lost(struct ieee80211_sub_if_data *sdata,
|
||||||
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
||||||
u8 frame_buf[DEAUTH_DISASSOC_LEN];
|
u8 frame_buf[DEAUTH_DISASSOC_LEN];
|
||||||
|
|
||||||
ieee80211_stop_poll(sdata);
|
|
||||||
|
|
||||||
ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH, reason,
|
ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH, reason,
|
||||||
false, frame_buf);
|
false, frame_buf);
|
||||||
mutex_unlock(&ifmgd->mtx);
|
mutex_unlock(&ifmgd->mtx);
|
||||||
|
|
Loading…
Reference in a new issue