mac80211: Always send a null data frame if TIM bit is set.
authorVivek Natarajan <vivek.natraj@gmail.com>
Mon, 2 Mar 2009 14:50:30 +0000 (20:20 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 5 Mar 2009 19:39:38 +0000 (14:39 -0500)
If the AP thinks we are in power save state eventhough we are not truly
in that state, it sets the TIM bit and does not send a data frame unless
we send a null data frame to correct the state in the AP.
This might happen if the null data frame for wake up is lost in the air
after we disable power save.

Signed-off-by: Vivek Natarajan <vnatarajan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/mlme.c

index 52d876e3eabeda6f7e08404e22d918a079e1ffc5..391445c6b8927808520cd2cbf7e9244a160af872 100644 (file)
@@ -1458,8 +1458,7 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
        ieee80211_sta_wmm_params(local, ifmgd, elems.wmm_param,
                                 elems.wmm_param_len);
 
-       if (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK &&
-           local->hw.conf.flags & IEEE80211_CONF_PS) {
+       if (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) {
                directed_tim = ieee80211_check_tim(&elems, ifmgd->aid);
 
                if (directed_tim) {