diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/mlme.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 7600ac9b87fe..806d3ded98bd 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -855,16 +855,26 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata, | |||
855 | if (self_disconnected || reason == WLAN_REASON_DISASSOC_STA_HAS_LEFT) | 855 | if (self_disconnected || reason == WLAN_REASON_DISASSOC_STA_HAS_LEFT) |
856 | ifsta->state = IEEE80211_STA_MLME_DISABLED; | 856 | ifsta->state = IEEE80211_STA_MLME_DISABLED; |
857 | 857 | ||
858 | sta_info_unlink(&sta); | ||
859 | |||
860 | rcu_read_unlock(); | 858 | rcu_read_unlock(); |
861 | 859 | ||
862 | sta_info_destroy(sta); | ||
863 | |||
864 | local->hw.conf.ht.enabled = false; | 860 | local->hw.conf.ht.enabled = false; |
865 | ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_HT); | 861 | ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_HT); |
866 | 862 | ||
867 | ieee80211_bss_info_change_notify(sdata, changed); | 863 | ieee80211_bss_info_change_notify(sdata, changed); |
864 | |||
865 | rcu_read_lock(); | ||
866 | |||
867 | sta = sta_info_get(local, ifsta->bssid); | ||
868 | if (!sta) { | ||
869 | rcu_read_unlock(); | ||
870 | return; | ||
871 | } | ||
872 | |||
873 | sta_info_unlink(&sta); | ||
874 | |||
875 | rcu_read_unlock(); | ||
876 | |||
877 | sta_info_destroy(sta); | ||
868 | } | 878 | } |
869 | 879 | ||
870 | static int ieee80211_sta_wep_configured(struct ieee80211_sub_if_data *sdata) | 880 | static int ieee80211_sta_wep_configured(struct ieee80211_sub_if_data *sdata) |