diff options
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; |