diff options
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/mlme.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index f7a390ff9679..eababf320b83 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -3271,9 +3271,14 @@ void ieee80211_sta_req_auth(struct ieee80211_sub_if_data *sdata, | |||
3271 | return; | 3271 | return; |
3272 | 3272 | ||
3273 | if ((ifsta->flags & (IEEE80211_STA_BSSID_SET | | 3273 | if ((ifsta->flags & (IEEE80211_STA_BSSID_SET | |
3274 | IEEE80211_STA_AUTO_BSSID_SEL)) && | 3274 | IEEE80211_STA_AUTO_BSSID_SEL)) && |
3275 | (ifsta->flags & (IEEE80211_STA_SSID_SET | | 3275 | (ifsta->flags & (IEEE80211_STA_SSID_SET | |
3276 | IEEE80211_STA_AUTO_SSID_SEL))) { | 3276 | IEEE80211_STA_AUTO_SSID_SEL))) { |
3277 | |||
3278 | if (ifsta->state == IEEE80211_STA_MLME_ASSOCIATED) | ||
3279 | ieee80211_set_disassoc(sdata, ifsta, true, true, | ||
3280 | WLAN_REASON_DEAUTH_LEAVING); | ||
3281 | |||
3277 | set_bit(IEEE80211_STA_REQ_AUTH, &ifsta->request); | 3282 | set_bit(IEEE80211_STA_REQ_AUTH, &ifsta->request); |
3278 | queue_work(local->hw.workqueue, &ifsta->work); | 3283 | queue_work(local->hw.workqueue, &ifsta->work); |
3279 | } | 3284 | } |