Commit 2dace10e authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville

mac80211: clean up BA session teardown

The sta_info pointer can very well be passed to
ieee80211_sta_tear_down_BA_sessions, this will
later allow us to pass it through even further.
Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 55687e38
...@@ -153,15 +153,15 @@ u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata, ...@@ -153,15 +153,15 @@ u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
return changed; return changed;
} }
void ieee80211_sta_tear_down_BA_sessions(struct ieee80211_sub_if_data *sdata, u8 *addr) void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta)
{ {
struct ieee80211_local *local = sdata->local; struct ieee80211_local *local = sta->local;
int i; int i;
for (i = 0; i < STA_TID_NUM; i++) { for (i = 0; i < STA_TID_NUM; i++) {
ieee80211_stop_tx_ba_session(&local->hw, addr, i, ieee80211_stop_tx_ba_session(&local->hw, sta->sta.addr, i,
WLAN_BACK_INITIATOR); WLAN_BACK_INITIATOR);
ieee80211_sta_stop_rx_ba_session(sdata, addr, i, ieee80211_sta_stop_rx_ba_session(sta->sdata, sta->sta.addr, i,
WLAN_BACK_RECIPIENT, WLAN_BACK_RECIPIENT,
WLAN_REASON_QSTA_LEAVE_QBSS); WLAN_REASON_QSTA_LEAVE_QBSS);
} }
......
...@@ -993,7 +993,7 @@ void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata, ...@@ -993,7 +993,7 @@ void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata,
void ieee80211_sta_stop_rx_ba_session(struct ieee80211_sub_if_data *sdata, u8 *da, void ieee80211_sta_stop_rx_ba_session(struct ieee80211_sub_if_data *sdata, u8 *da,
u16 tid, u16 initiator, u16 reason); u16 tid, u16 initiator, u16 reason);
void ieee80211_sta_tear_down_BA_sessions(struct ieee80211_sub_if_data *sdata, u8 *addr); void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta);
void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata, void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata,
struct sta_info *sta, struct sta_info *sta,
struct ieee80211_mgmt *mgmt, size_t len); struct ieee80211_mgmt *mgmt, size_t len);
......
...@@ -362,8 +362,7 @@ static int ieee80211_stop(struct net_device *dev) ...@@ -362,8 +362,7 @@ static int ieee80211_stop(struct net_device *dev)
list_for_each_entry_rcu(sta, &local->sta_list, list) { list_for_each_entry_rcu(sta, &local->sta_list, list) {
if (sta->sdata == sdata) if (sta->sdata == sdata)
ieee80211_sta_tear_down_BA_sessions(sdata, ieee80211_sta_tear_down_BA_sessions(sta);
sta->sta.addr);
} }
rcu_read_unlock(); rcu_read_unlock();
......
...@@ -954,7 +954,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata, ...@@ -954,7 +954,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
netif_tx_stop_all_queues(sdata->dev); netif_tx_stop_all_queues(sdata->dev);
netif_carrier_off(sdata->dev); netif_carrier_off(sdata->dev);
ieee80211_sta_tear_down_BA_sessions(sdata, sta->sta.addr); ieee80211_sta_tear_down_BA_sessions(sta);
if (self_disconnected) { if (self_disconnected) {
if (deauth) if (deauth)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment