Skip to content

Commit

Permalink
mac80211: disassociate prior to unlinking AP/station
Browse files Browse the repository at this point in the history
This patch reorders calls during disassociation in
ieee80211_set_disassoc function.
Since sta_info_unlink calls sta_notify(REMOVE) it will
remove the station representing AP from the driver before
it has disassociated from it using bss_info_changed callback.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Tomas Winkler authored and John W. Linville committed Dec 5, 2008
1 parent e327b84 commit 8e268e4
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions net/mac80211/mlme.c
Original file line number Diff line number Diff line change
Expand Up @@ -855,16 +855,26 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
if (self_disconnected || reason == WLAN_REASON_DISASSOC_STA_HAS_LEFT)
ifsta->state = IEEE80211_STA_MLME_DISABLED;

sta_info_unlink(&sta);

rcu_read_unlock();

sta_info_destroy(sta);

local->hw.conf.ht.enabled = false;
ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_HT);

ieee80211_bss_info_change_notify(sdata, changed);

rcu_read_lock();

sta = sta_info_get(local, ifsta->bssid);
if (!sta) {
rcu_read_unlock();
return;
}

sta_info_unlink(&sta);

rcu_read_unlock();

sta_info_destroy(sta);
}

static int ieee80211_sta_wep_configured(struct ieee80211_sub_if_data *sdata)
Expand Down

0 comments on commit 8e268e4

Please sign in to comment.