mac80211: clean up BA session teardown
authorJohannes Berg <johannes@sipsolutions.net>
Tue, 10 Feb 2009 20:25:52 +0000 (21:25 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 13 Feb 2009 18:45:44 +0000 (13:45 -0500)
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>
net/mac80211/ht.c
net/mac80211/ieee80211_i.h
net/mac80211/iface.c
net/mac80211/mlme.c

index a49a8a5828bfb7c23dc186d0d5cf75f94c19ec37..1b503f3cc54cdee70372403e252ebd63cb7885c2 100644 (file)
@@ -153,15 +153,15 @@ u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata,
        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;
 
        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);
-               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_REASON_QSTA_LEAVE_QBSS);
        }
index 6987dfa41c7f7384e37dd11368e63c36848602ce..c6858ecde312083cf370365931fd3ab61bcb281e 100644 (file)
@@ -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,
                                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,
                             struct sta_info *sta,
                             struct ieee80211_mgmt *mgmt, size_t len);
index 915d04323a32b3a9670230aea61192e2a0936573..1c17fb8e405878b3ad56409946d2da348f3c9dad 100644 (file)
@@ -362,8 +362,7 @@ static int ieee80211_stop(struct net_device *dev)
 
        list_for_each_entry_rcu(sta, &local->sta_list, list) {
                if (sta->sdata == sdata)
-                       ieee80211_sta_tear_down_BA_sessions(sdata,
-                                                           sta->sta.addr);
+                       ieee80211_sta_tear_down_BA_sessions(sta);
        }
 
        rcu_read_unlock();
index 169f10c5104291b14a3773808ce6e471038b107f..bfc47b33068740a643d7d2cbb45b1f02f13f76e5 100644 (file)
@@ -954,7 +954,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
        netif_tx_stop_all_queues(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 (deauth)