aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/main.c
diff options
context:
space:
mode:
authorSujith <Sujith.Manoharan@atheros.com>2008-10-24 00:25:27 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-10-31 19:02:14 -0400
commit8b30b1fe368ab03049435884c11c5c50e4c4ef0b (patch)
tree02b27b36cf90267d59584b493ad652e3a4cc6a7e /net/mac80211/main.c
parent4393dce9402c58744433c7a4f3931e17ddde4fb4 (diff)
mac80211: Re-enable aggregation
Wireless HW without any dedicated queues for aggregation do not need the ampdu_queues mechanism present right now in mac80211. Since mac80211 is still incomplete wrt TX MQ changes, do not allow aggregation sessions for drivers that set ampdu_queues. This is only an interim hack until Intel fixes the requeue issue. Signed-off-by: Sujith <Sujith.Manoharan@atheros.com> Signed-off-by: Luis Rodriguez <Luis.Rodriguez@Atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r--net/mac80211/main.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 88c1975a97a5..fa0cc7a1e6b4 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -386,8 +386,6 @@ static void ieee80211_handle_filtered_frame(struct ieee80211_local *local,
386 struct sta_info *sta, 386 struct sta_info *sta,
387 struct sk_buff *skb) 387 struct sk_buff *skb)
388{ 388{
389 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
390
391 sta->tx_filtered_count++; 389 sta->tx_filtered_count++;
392 390
393 /* 391 /*
@@ -434,10 +432,9 @@ static void ieee80211_handle_filtered_frame(struct ieee80211_local *local,
434 return; 432 return;
435 } 433 }
436 434
437 if (!test_sta_flags(sta, WLAN_STA_PS) && 435 if (!test_sta_flags(sta, WLAN_STA_PS) && !skb->requeue) {
438 !(info->flags & IEEE80211_TX_CTL_REQUEUE)) {
439 /* Software retry the packet once */ 436 /* Software retry the packet once */
440 info->flags |= IEEE80211_TX_CTL_REQUEUE; 437 skb->requeue = 1;
441 ieee80211_remove_tx_extra(local, sta->key, skb); 438 ieee80211_remove_tx_extra(local, sta->key, skb);
442 dev_queue_xmit(skb); 439 dev_queue_xmit(skb);
443 return; 440 return;