aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/main.c
diff options
context:
space:
mode:
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;