Thread (19 messages) 19 messages, 3 authors, 2008-11-24

Re: Fwd: p54: testing AP mode: cannot switch to master mode

From: Stefan Steuerwald <hidden>
Date: 2008-11-24 13:11:51

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 [off-list ref]:
quoted hunk ↗ jump to hunk
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@sipsolutions.net>
---
 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);
       }

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help