aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2010-04-08 13:34:54 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-04-08 13:34:54 -0400
commit0f2df9eac70423838a1f8d410fd3899ddd88317b (patch)
tree0617f723320d83eca5cef9c964c001014e74213f /net/mac80211/mlme.c
parent8c11e4ab09ffb975a89802dde0e9aa52a53b8aa5 (diff)
parent1144601118507f8b3b676a9a392584d216d3f2cc (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into merge
Conflicts: Documentation/feature-removal-schedule.txt drivers/net/wireless/ath/ath5k/phy.c drivers/net/wireless/iwlwifi/iwl-4965.c drivers/net/wireless/iwlwifi/iwl-agn.c drivers/net/wireless/iwlwifi/iwl-core.c drivers/net/wireless/iwlwifi/iwl-core.h drivers/net/wireless/iwlwifi/iwl-tx.c
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r--net/mac80211/mlme.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 4c189d0be4a3..461167dfa42c 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -447,10 +447,12 @@ static void ieee80211_enable_ps(struct ieee80211_local *local,
447 if (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) 447 if (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK)
448 ieee80211_send_nullfunc(local, sdata, 1); 448 ieee80211_send_nullfunc(local, sdata, 1);
449 449
450 if (!(local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS)) { 450 if ((local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) &&
451 conf->flags |= IEEE80211_CONF_PS; 451 (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS))
452 ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS); 452 return;
453 } 453
454 conf->flags |= IEEE80211_CONF_PS;
455 ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS);
454 } 456 }
455} 457}
456 458
@@ -569,7 +571,8 @@ void ieee80211_dynamic_ps_enable_work(struct work_struct *work)
569 (!(ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED))) 571 (!(ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED)))
570 ieee80211_send_nullfunc(local, sdata, 1); 572 ieee80211_send_nullfunc(local, sdata, 1);
571 573
572 if (!(local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) || 574 if (!((local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) &&
575 (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK)) ||
573 (ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED)) { 576 (ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED)) {
574 ifmgd->flags &= ~IEEE80211_STA_NULLFUNC_ACKED; 577 ifmgd->flags &= ~IEEE80211_STA_NULLFUNC_ACKED;
575 local->hw.conf.flags |= IEEE80211_CONF_PS; 578 local->hw.conf.flags |= IEEE80211_CONF_PS;