|
@@ -1137,8 +1137,9 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
|
|
changed |= BSS_CHANGED_BSSID | BSS_CHANGED_HT;
|
|
changed |= BSS_CHANGED_BSSID | BSS_CHANGED_HT;
|
|
ieee80211_bss_info_change_notify(sdata, changed);
|
|
ieee80211_bss_info_change_notify(sdata, changed);
|
|
|
|
|
|
|
|
+ /* remove AP and TDLS peers */
|
|
if (remove_sta)
|
|
if (remove_sta)
|
|
- sta_info_destroy_addr(sdata, bssid);
|
|
|
|
|
|
+ sta_info_flush(local, sdata);
|
|
|
|
|
|
del_timer_sync(&sdata->u.mgd.conn_mon_timer);
|
|
del_timer_sync(&sdata->u.mgd.conn_mon_timer);
|
|
del_timer_sync(&sdata->u.mgd.bcn_mon_timer);
|
|
del_timer_sync(&sdata->u.mgd.bcn_mon_timer);
|
|
@@ -2738,7 +2739,7 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
|
|
req->reason_code, cookie,
|
|
req->reason_code, cookie,
|
|
!req->local_state_change);
|
|
!req->local_state_change);
|
|
if (assoc_bss)
|
|
if (assoc_bss)
|
|
- sta_info_destroy_addr(sdata, bssid);
|
|
|
|
|
|
+ sta_info_flush(sdata->local, sdata);
|
|
|
|
|
|
mutex_lock(&sdata->local->mtx);
|
|
mutex_lock(&sdata->local->mtx);
|
|
ieee80211_recalc_idle(sdata->local);
|
|
ieee80211_recalc_idle(sdata->local);
|
|
@@ -2778,7 +2779,7 @@ int ieee80211_mgd_disassoc(struct ieee80211_sub_if_data *sdata,
|
|
ieee80211_send_deauth_disassoc(sdata, req->bss->bssid,
|
|
ieee80211_send_deauth_disassoc(sdata, req->bss->bssid,
|
|
IEEE80211_STYPE_DISASSOC, req->reason_code,
|
|
IEEE80211_STYPE_DISASSOC, req->reason_code,
|
|
cookie, !req->local_state_change);
|
|
cookie, !req->local_state_change);
|
|
- sta_info_destroy_addr(sdata, bssid);
|
|
|
|
|
|
+ sta_info_flush(sdata->local, sdata);
|
|
|
|
|
|
mutex_lock(&sdata->local->mtx);
|
|
mutex_lock(&sdata->local->mtx);
|
|
ieee80211_recalc_idle(sdata->local);
|
|
ieee80211_recalc_idle(sdata->local);
|