diff options
author | Sujith <Sujith.Manoharan@atheros.com> | 2008-10-24 00:25:27 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-10-31 19:02:14 -0400 |
commit | 8b30b1fe368ab03049435884c11c5c50e4c4ef0b (patch) | |
tree | 02b27b36cf90267d59584b493ad652e3a4cc6a7e /net/mac80211/main.c | |
parent | 4393dce9402c58744433c7a4f3931e17ddde4fb4 (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.c | 7 |
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; |