diff options
author | Ron Rindjunsky <ron.rindjunsky@intel.com> | 2007-12-25 10:00:33 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:00:59 -0500 |
commit | 07db218396650933abff3c5c1ad1e2a6e0cfedeb (patch) | |
tree | e81672015dba20e146b2eea30aea9449f5833a44 /net/mac80211/sta_info.c | |
parent | 5aae2880618471cfa679ca22531b88990bee9bf8 (diff) |
mac80211: A-MPDU Rx adding basic functionality
This patch adds the basic needed abilities and functions for A-MPDU Rx session
changed functions:
- ieee80211_sta_process_addba_request - Rx A-MPDU initialization enabled
- ieee80211_stop - stops all A-MPDU Rx in case interface goes down
added functions:
- ieee80211_send_delba - used for sending out Del BA in A-MPDU sessions
- ieee80211_sta_stop_rx_BA_session - stopping Rx A-MPDU session
- sta_rx_agg_session_timer_expired - stops A-MPDU Rx use if load is too
low
Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mac80211/sta_info.c')
-rw-r--r-- | net/mac80211/sta_info.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c index ffe8a49d8927..60ca07804056 100644 --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c | |||
@@ -104,6 +104,7 @@ static void sta_info_release(struct kref *kref) | |||
104 | struct sta_info *sta = container_of(kref, struct sta_info, kref); | 104 | struct sta_info *sta = container_of(kref, struct sta_info, kref); |
105 | struct ieee80211_local *local = sta->local; | 105 | struct ieee80211_local *local = sta->local; |
106 | struct sk_buff *skb; | 106 | struct sk_buff *skb; |
107 | int i; | ||
107 | 108 | ||
108 | /* free sta structure; it has already been removed from | 109 | /* free sta structure; it has already been removed from |
109 | * hash table etc. external structures. Make sure that all | 110 | * hash table etc. external structures. Make sure that all |
@@ -116,6 +117,8 @@ static void sta_info_release(struct kref *kref) | |||
116 | while ((skb = skb_dequeue(&sta->tx_filtered)) != NULL) { | 117 | while ((skb = skb_dequeue(&sta->tx_filtered)) != NULL) { |
117 | dev_kfree_skb_any(skb); | 118 | dev_kfree_skb_any(skb); |
118 | } | 119 | } |
120 | for (i = 0; i < STA_TID_NUM; i++) | ||
121 | del_timer_sync(&sta->ampdu_mlme.tid_rx[i].session_timer); | ||
119 | rate_control_free_sta(sta->rate_ctrl, sta->rate_ctrl_priv); | 122 | rate_control_free_sta(sta->rate_ctrl, sta->rate_ctrl_priv); |
120 | rate_control_put(sta->rate_ctrl); | 123 | rate_control_put(sta->rate_ctrl); |
121 | kfree(sta); | 124 | kfree(sta); |