diff options
Diffstat (limited to 'net/mac80211/agg-rx.c')
-rw-r--r-- | net/mac80211/agg-rx.c | 38 |
1 files changed, 14 insertions, 24 deletions
diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c index c649188314cc..186d9919b043 100644 --- a/net/mac80211/agg-rx.c +++ b/net/mac80211/agg-rx.c | |||
@@ -74,18 +74,17 @@ void ___ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid, | |||
74 | 74 | ||
75 | RCU_INIT_POINTER(sta->ampdu_mlme.tid_rx[tid], NULL); | 75 | RCU_INIT_POINTER(sta->ampdu_mlme.tid_rx[tid], NULL); |
76 | 76 | ||
77 | #ifdef CONFIG_MAC80211_HT_DEBUG | 77 | ht_dbg(sta->sdata, |
78 | printk(KERN_DEBUG | ||
79 | "Rx BA session stop requested for %pM tid %u %s reason: %d\n", | 78 | "Rx BA session stop requested for %pM tid %u %s reason: %d\n", |
80 | sta->sta.addr, tid, | 79 | sta->sta.addr, tid, |
81 | initiator == WLAN_BACK_RECIPIENT ? "recipient" : "inititator", | 80 | initiator == WLAN_BACK_RECIPIENT ? "recipient" : "inititator", |
82 | (int)reason); | 81 | (int)reason); |
83 | #endif /* CONFIG_MAC80211_HT_DEBUG */ | ||
84 | 82 | ||
85 | if (drv_ampdu_action(local, sta->sdata, IEEE80211_AMPDU_RX_STOP, | 83 | if (drv_ampdu_action(local, sta->sdata, IEEE80211_AMPDU_RX_STOP, |
86 | &sta->sta, tid, NULL, 0)) | 84 | &sta->sta, tid, NULL, 0)) |
87 | printk(KERN_DEBUG "HW problem - can not stop rx " | 85 | sdata_info(sta->sdata, |
88 | "aggregation for tid %d\n", tid); | 86 | "HW problem - can not stop rx aggregation for tid %d\n", |
87 | tid); | ||
89 | 88 | ||
90 | /* check if this is a self generated aggregation halt */ | 89 | /* check if this is a self generated aggregation halt */ |
91 | if (initiator == WLAN_BACK_RECIPIENT && tx) | 90 | if (initiator == WLAN_BACK_RECIPIENT && tx) |
@@ -160,9 +159,8 @@ static void sta_rx_agg_session_timer_expired(unsigned long data) | |||
160 | } | 159 | } |
161 | rcu_read_unlock(); | 160 | rcu_read_unlock(); |
162 | 161 | ||
163 | #ifdef CONFIG_MAC80211_HT_DEBUG | 162 | ht_dbg(sta->sdata, "rx session timer expired on tid %d\n", (u16)*ptid); |
164 | printk(KERN_DEBUG "rx session timer expired on tid %d\n", (u16)*ptid); | 163 | |
165 | #endif | ||
166 | set_bit(*ptid, sta->ampdu_mlme.tid_rx_timer_expired); | 164 | set_bit(*ptid, sta->ampdu_mlme.tid_rx_timer_expired); |
167 | ieee80211_queue_work(&sta->local->hw, &sta->ampdu_mlme.work); | 165 | ieee80211_queue_work(&sta->local->hw, &sta->ampdu_mlme.work); |
168 | } | 166 | } |
@@ -249,10 +247,7 @@ void ieee80211_process_addba_request(struct ieee80211_local *local, | |||
249 | status = WLAN_STATUS_REQUEST_DECLINED; | 247 | status = WLAN_STATUS_REQUEST_DECLINED; |
250 | 248 | ||
251 | if (test_sta_flag(sta, WLAN_STA_BLOCK_BA)) { | 249 | if (test_sta_flag(sta, WLAN_STA_BLOCK_BA)) { |
252 | #ifdef CONFIG_MAC80211_HT_DEBUG | 250 | ht_dbg(sta->sdata, "Suspend in progress - Denying ADDBA request\n"); |
253 | printk(KERN_DEBUG "Suspend in progress. " | ||
254 | "Denying ADDBA request\n"); | ||
255 | #endif | ||
256 | goto end_no_lock; | 251 | goto end_no_lock; |
257 | } | 252 | } |
258 | 253 | ||
@@ -264,10 +259,9 @@ void ieee80211_process_addba_request(struct ieee80211_local *local, | |||
264 | (!(sta->sta.ht_cap.cap & IEEE80211_HT_CAP_DELAY_BA))) || | 259 | (!(sta->sta.ht_cap.cap & IEEE80211_HT_CAP_DELAY_BA))) || |
265 | (buf_size > IEEE80211_MAX_AMPDU_BUF)) { | 260 | (buf_size > IEEE80211_MAX_AMPDU_BUF)) { |
266 | status = WLAN_STATUS_INVALID_QOS_PARAM; | 261 | status = WLAN_STATUS_INVALID_QOS_PARAM; |
267 | #ifdef CONFIG_MAC80211_HT_DEBUG | 262 | ht_dbg_ratelimited(sta->sdata, |
268 | net_dbg_ratelimited("AddBA Req with bad params from %pM on tid %u. policy %d, buffer size %d\n", | 263 | "AddBA Req with bad params from %pM on tid %u. policy %d, buffer size %d\n", |
269 | mgmt->sa, tid, ba_policy, buf_size); | 264 | mgmt->sa, tid, ba_policy, buf_size); |
270 | #endif /* CONFIG_MAC80211_HT_DEBUG */ | ||
271 | goto end_no_lock; | 265 | goto end_no_lock; |
272 | } | 266 | } |
273 | /* determine default buffer size */ | 267 | /* determine default buffer size */ |
@@ -282,10 +276,9 @@ void ieee80211_process_addba_request(struct ieee80211_local *local, | |||
282 | mutex_lock(&sta->ampdu_mlme.mtx); | 276 | mutex_lock(&sta->ampdu_mlme.mtx); |
283 | 277 | ||
284 | if (sta->ampdu_mlme.tid_rx[tid]) { | 278 | if (sta->ampdu_mlme.tid_rx[tid]) { |
285 | #ifdef CONFIG_MAC80211_HT_DEBUG | 279 | ht_dbg_ratelimited(sta->sdata, |
286 | net_dbg_ratelimited("unexpected AddBA Req from %pM on tid %u\n", | 280 | "unexpected AddBA Req from %pM on tid %u\n", |
287 | mgmt->sa, tid); | 281 | mgmt->sa, tid); |
288 | #endif /* CONFIG_MAC80211_HT_DEBUG */ | ||
289 | 282 | ||
290 | /* delete existing Rx BA session on the same tid */ | 283 | /* delete existing Rx BA session on the same tid */ |
291 | ___ieee80211_stop_rx_ba_session(sta, tid, WLAN_BACK_RECIPIENT, | 284 | ___ieee80211_stop_rx_ba_session(sta, tid, WLAN_BACK_RECIPIENT, |
@@ -324,10 +317,7 @@ void ieee80211_process_addba_request(struct ieee80211_local *local, | |||
324 | 317 | ||
325 | ret = drv_ampdu_action(local, sta->sdata, IEEE80211_AMPDU_RX_START, | 318 | ret = drv_ampdu_action(local, sta->sdata, IEEE80211_AMPDU_RX_START, |
326 | &sta->sta, tid, &start_seq_num, 0); | 319 | &sta->sta, tid, &start_seq_num, 0); |
327 | #ifdef CONFIG_MAC80211_HT_DEBUG | 320 | ht_dbg(sta->sdata, "Rx A-MPDU request on tid %d result %d\n", tid, ret); |
328 | printk(KERN_DEBUG "Rx A-MPDU request on tid %d result %d\n", tid, ret); | ||
329 | #endif /* CONFIG_MAC80211_HT_DEBUG */ | ||
330 | |||
331 | if (ret) { | 321 | if (ret) { |
332 | kfree(tid_agg_rx->reorder_buf); | 322 | kfree(tid_agg_rx->reorder_buf); |
333 | kfree(tid_agg_rx->reorder_time); | 323 | kfree(tid_agg_rx->reorder_time); |