All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] mac80211: do not restart ps timer during scan
@ 2011-02-01 14:34 Rajkumar Manoharan
  2011-02-01 14:34 ` [PATCH] ath9k: wakeup hw before stopping beacon queue Rajkumar Manoharan
  2011-02-01 14:36 ` [RFC] mac80211: do not restart ps timer during scan Johannes Berg
  0 siblings, 2 replies; 5+ messages in thread
From: Rajkumar Manoharan @ 2011-02-01 14:34 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, Rajkumar Manoharan

While leaving oper channel, STA informs sleep state to AP to
stop sending data. Before sending ack for the nullfunc, AP is
still sending the data to STA which restarts ps_timer that
is causing unnecessary nullfunc exchange on timer expiry
when the STA is on offchannel. So don't restart ps_timer
on data reception during scan. This issue was identified by
the following warning.

WARNING: at net/mac80211/tx.c:661 invoke_tx_handlers+0xf07/0x1330 [mac80211]
wlan0: Dropped data frame as no usable bitrate found while scanning and
associated. Target station: 00:03:7f:0b:a6:1b on 5 GHz band
Call Trace:
  [<ffffffffa0413ba7>] invoke_tx_handlers+0xf07/0x1330 [mac80211]
  [<ffffffffa0414056>] ieee80211_tx+0x86/0x2c0 [mac80211]
  [<ffffffffa0414345>] ieee80211_xmit+0xb5/0x1d0 [mac80211]
  [<ffffffffa04037e0>] ieee80211_dynamic_ps_enable_work+0x0/0xb0 [mac80211]
  [<ffffffffa04158cf>] ieee80211_tx_skb+0x4f/0x60 [mac80211]
  [<ffffffffa04026e6>] ieee80211_send_nullfunc+0x46/0x60 [mac80211]
  [<ffffffffa0403885>] ieee80211_dynamic_ps_enable_work+0xa5/0xb0 [mac80211]

Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
---
 net/mac80211/rx.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 7185c93..0e02ce9 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1929,7 +1929,9 @@ ieee80211_rx_h_data(struct ieee80211_rx_data *rx)
 	dev->stats.rx_bytes += rx->skb->len;
 
 	if (local->ps_sdata && local->hw.conf.dynamic_ps_timeout > 0 &&
-	    !is_multicast_ether_addr(((struct ethhdr *)rx->skb->data)->h_dest)) {
+	    !is_multicast_ether_addr(
+		    ((struct ethhdr *)rx->skb->data)->h_dest) &&
+	    !local->scanning) {
 			mod_timer(&local->dynamic_ps_timer, jiffies +
 			 msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout));
 	}
-- 
1.7.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-02-01 16:53 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-02-01 14:34 [RFC] mac80211: do not restart ps timer during scan Rajkumar Manoharan
2011-02-01 14:34 ` [PATCH] ath9k: wakeup hw before stopping beacon queue Rajkumar Manoharan
2011-02-01 14:36 ` [RFC] mac80211: do not restart ps timer during scan Johannes Berg
2011-02-01 15:17   ` Ben Greear
2011-02-01 16:53   ` Rajkumar Manoharan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.