Hello Johannes, thank you for providing this patch. Tested, but I'm not sure about the result. I THINK the frequency of my app-level timeouts is reduced, but I'm not really sure. In any case it doesn't break anything for me. I'm investigating this reason for my timeouts: http://marc.info/?l=linux-wireless&m=122727674810057&w=2 and have better log info to post, will followup there. Thank you, Stefan. 2008/11/23 Johannes Berg <johannes@xxxxxxxxxxxxxxxx>: > Can you trhis this patch? > > Also, next time please don't filter the captures so much, it made it > hard to diagnose the problem. > > johannes > > > Subject: mac80211: only transition STAs ps->wake on data frames > > When a station goes to PS mode to scan, it will then send > probe requests without the PS bit set. mac80211 will take > that as indication that the station woke up, but it didn't. > This patch changes mac80211 to only consider doze->wake > transitions on data frames to to fix that issue. > > Signed-off-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> > --- > net/mac80211/rx.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > --- everything.orig/net/mac80211/rx.c 2008-11-23 14:58:21.000000000 +0100 > +++ everything/net/mac80211/rx.c 2008-11-23 14:59:58.000000000 +0100 > @@ -750,9 +750,11 @@ ieee80211_rx_h_sta_process(struct ieee80 > /* Change STA power saving mode only in the end of a frame > * exchange sequence */ > if (test_sta_flags(sta, WLAN_STA_PS) && > - !ieee80211_has_pm(hdr->frame_control)) > - rx->sent_ps_buffered += ap_sta_ps_end(sta); > - else if (!test_sta_flags(sta, WLAN_STA_PS) && > + !ieee80211_has_pm(hdr->frame_control)) { > + /* ignore PS bit on non-data frames */ > + if (ieee80211_is_data(hdr->frame_control)) > + rx->sent_ps_buffered += ap_sta_ps_end(sta); > + } else if (!test_sta_flags(sta, WLAN_STA_PS) && > ieee80211_has_pm(hdr->frame_control)) > ap_sta_ps_start(sta); > } > > > -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html