diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/mlme.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 82cc30318a86..346ad4cfb013 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -3964,8 +3964,16 @@ int ieee80211_mgd_auth(struct ieee80211_sub_if_data *sdata, | |||
3964 | /* prep auth_data so we don't go into idle on disassoc */ | 3964 | /* prep auth_data so we don't go into idle on disassoc */ |
3965 | ifmgd->auth_data = auth_data; | 3965 | ifmgd->auth_data = auth_data; |
3966 | 3966 | ||
3967 | if (ifmgd->associated) | 3967 | if (ifmgd->associated) { |
3968 | ieee80211_set_disassoc(sdata, 0, 0, false, NULL); | 3968 | u8 frame_buf[IEEE80211_DEAUTH_FRAME_LEN]; |
3969 | |||
3970 | ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH, | ||
3971 | WLAN_REASON_UNSPECIFIED, | ||
3972 | false, frame_buf); | ||
3973 | |||
3974 | __cfg80211_send_deauth(sdata->dev, frame_buf, | ||
3975 | sizeof(frame_buf)); | ||
3976 | } | ||
3969 | 3977 | ||
3970 | sdata_info(sdata, "authenticate with %pM\n", req->bss->bssid); | 3978 | sdata_info(sdata, "authenticate with %pM\n", req->bss->bssid); |
3971 | 3979 | ||
@@ -4025,8 +4033,16 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata, | |||
4025 | 4033 | ||
4026 | mutex_lock(&ifmgd->mtx); | 4034 | mutex_lock(&ifmgd->mtx); |
4027 | 4035 | ||
4028 | if (ifmgd->associated) | 4036 | if (ifmgd->associated) { |
4029 | ieee80211_set_disassoc(sdata, 0, 0, false, NULL); | 4037 | u8 frame_buf[IEEE80211_DEAUTH_FRAME_LEN]; |
4038 | |||
4039 | ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH, | ||
4040 | WLAN_REASON_UNSPECIFIED, | ||
4041 | false, frame_buf); | ||
4042 | |||
4043 | __cfg80211_send_deauth(sdata->dev, frame_buf, | ||
4044 | sizeof(frame_buf)); | ||
4045 | } | ||
4030 | 4046 | ||
4031 | if (ifmgd->auth_data && !ifmgd->auth_data->done) { | 4047 | if (ifmgd->auth_data && !ifmgd->auth_data->done) { |
4032 | err = -EBUSY; | 4048 | err = -EBUSY; |