aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-02-10 15:25:52 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-02-13 13:45:44 -0500
commit2dace10efb8b761ccbd18d524f3b14d823edf8c0 (patch)
treeeb067b3081a33bcf3c7cb2b896ac4d844fce2d3e
parent55687e380a3965ac448e03281e027553a6ae6dac (diff)
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: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--net/mac80211/ht.c8
-rw-r--r--net/mac80211/ieee80211_i.h2
-rw-r--r--net/mac80211/iface.c3
-rw-r--r--net/mac80211/mlme.c2
4 files changed, 7 insertions, 8 deletions
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c
index a49a8a5828bf..1b503f3cc54c 100644
--- a/net/mac80211/ht.c
+++ b/net/mac80211/ht.c
@@ -153,15 +153,15 @@ u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
153 return changed; 153 return changed;
154} 154}
155 155
156void ieee80211_sta_tear_down_BA_sessions(struct ieee80211_sub_if_data *sdata, u8 *addr) 156void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta)
157{ 157{
158 struct ieee80211_local *local = sdata->local; 158 struct ieee80211_local *local = sta->local;
159 int i; 159 int i;
160 160
161 for (i = 0; i < STA_TID_NUM; i++) { 161 for (i = 0; i < STA_TID_NUM; i++) {
162 ieee80211_stop_tx_ba_session(&local->hw, addr, i, 162 ieee80211_stop_tx_ba_session(&local->hw, sta->sta.addr, i,
163 WLAN_BACK_INITIATOR); 163 WLAN_BACK_INITIATOR);
164 ieee80211_sta_stop_rx_ba_session(sdata, addr, i, 164 ieee80211_sta_stop_rx_ba_session(sta->sdata, sta->sta.addr, i,
165 WLAN_BACK_RECIPIENT, 165 WLAN_BACK_RECIPIENT,
166 WLAN_REASON_QSTA_LEAVE_QBSS); 166 WLAN_REASON_QSTA_LEAVE_QBSS);
167 } 167 }
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 6987dfa41c7f..c6858ecde312 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -993,7 +993,7 @@ void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata,
993 993
994void ieee80211_sta_stop_rx_ba_session(struct ieee80211_sub_if_data *sdata, u8 *da, 994void ieee80211_sta_stop_rx_ba_session(struct ieee80211_sub_if_data *sdata, u8 *da,
995 u16 tid, u16 initiator, u16 reason); 995 u16 tid, u16 initiator, u16 reason);
996void ieee80211_sta_tear_down_BA_sessions(struct ieee80211_sub_if_data *sdata, u8 *addr); 996void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta);
997void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata, 997void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata,
998 struct sta_info *sta, 998 struct sta_info *sta,
999 struct ieee80211_mgmt *mgmt, size_t len); 999 struct ieee80211_mgmt *mgmt, size_t len);
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 915d04323a32..1c17fb8e4058 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -362,8 +362,7 @@ static int ieee80211_stop(struct net_device *dev)
362 362
363 list_for_each_entry_rcu(sta, &local->sta_list, list) { 363 list_for_each_entry_rcu(sta, &local->sta_list, list) {
364 if (sta->sdata == sdata) 364 if (sta->sdata == sdata)
365 ieee80211_sta_tear_down_BA_sessions(sdata, 365 ieee80211_sta_tear_down_BA_sessions(sta);
366 sta->sta.addr);
367 } 366 }
368 367
369 rcu_read_unlock(); 368 rcu_read_unlock();
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 169f10c51042..bfc47b330687 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -954,7 +954,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
954 netif_tx_stop_all_queues(sdata->dev); 954 netif_tx_stop_all_queues(sdata->dev);
955 netif_carrier_off(sdata->dev); 955 netif_carrier_off(sdata->dev);
956 956
957 ieee80211_sta_tear_down_BA_sessions(sdata, sta->sta.addr); 957 ieee80211_sta_tear_down_BA_sessions(sta);
958 958
959 if (self_disconnected) { 959 if (self_disconnected) {
960 if (deauth) 960 if (deauth)