aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/tx.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r--net/mac80211/tx.c19
1 files changed, 1 insertions, 18 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 70ff4f065665..edacad1fb1dc 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -373,7 +373,7 @@ ieee80211_tx_h_unicast_ps_buf(struct ieee80211_tx_data *tx)
373 staflags = get_sta_flags(sta); 373 staflags = get_sta_flags(sta);
374 374
375 if (unlikely((staflags & WLAN_STA_PS) && 375 if (unlikely((staflags & WLAN_STA_PS) &&
376 !(staflags & WLAN_STA_PSPOLL))) { 376 !(info->flags & IEEE80211_TX_CTL_PSPOLL_RESPONSE))) {
377#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG 377#ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG
378 printk(KERN_DEBUG "STA %pM aid %d: PS buffer (entries " 378 printk(KERN_DEBUG "STA %pM aid %d: PS buffer (entries "
379 "before %d)\n", 379 "before %d)\n",
@@ -412,24 +412,7 @@ ieee80211_tx_h_unicast_ps_buf(struct ieee80211_tx_data *tx)
412 sta->sta.addr); 412 sta->sta.addr);
413 } 413 }
414#endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */ 414#endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */
415 if (test_and_clear_sta_flags(sta, WLAN_STA_PSPOLL)) {
416 /*
417 * The sleeping station with pending data is now snoozing.
418 * It queried us for its buffered frames and will go back
419 * to deep sleep once it got everything.
420 *
421 * inform the driver, in case the hardware does powersave
422 * frame filtering and keeps a station blacklist on its own
423 * (e.g: p54), so that frames can be delivered unimpeded.
424 *
425 * Note: It should be safe to disable the filter now.
426 * As, it is really unlikely that we still have any pending
427 * frame for this station in the hw's buffers/fifos left,
428 * that is not rejected with a unsuccessful tx_status yet.
429 */
430 415
431 info->flags |= IEEE80211_TX_CTL_CLEAR_PS_FILT;
432 }
433 return TX_CONTINUE; 416 return TX_CONTINUE;
434} 417}
435 418