public inbox for linux-wireless@vger.kernel.org
 help / color / mirror / Atom feed
From: "Luis R. Rodriguez" <lrodriguez@atheros.com>
To: linville@tuxdriver.com, johannes@sipsolutions.net, j@w1.fi
Cc: linux-wireless@vger.kernel.org, ath9k-devel@lists.ath9k.org,
	"Luis R. Rodriguez" <lrodriguez@atheros.com>
Subject: [PATCH 01/18] mac80211: disable moving between PS modes during scan
Date: Wed, 10 Jun 2009 04:19:18 -0400	[thread overview]
Message-ID: <1244621975-1238-2-git-send-email-lrodriguez@atheros.com> (raw)
In-Reply-To: <1244621975-1238-1-git-send-email-lrodriguez@atheros.com>

We don't want to trigger moving between PS mode during
scan. With this enabled we sometimes end up sending nullfunc
frames during scan. We're supposed to only send one prior to
scan and after scan.

This fixes an oops which occured due to an assert in ath9k:

http://marc.info/?l=linux-wireless&m=124277331319024

The assert was happening because the rate control algorithm
figures it should find at least one valid dual stream or
single stream rate. Since we allow mac80211 to send nullfunc
frames during scan and dynamic PS was enabled at times we ended
up trying to send nullfunc frames for the target sta on the
wrong band for which we have no valid rate to communicate with
it. This brakes the assumptions in rate control. We'll handle
this sanity check next, but this fix does prevent the
spurious nullfunc frames from actually being sent.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
---
 net/mac80211/tx.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 1436f74..e43fbb9 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1415,7 +1415,8 @@ int ieee80211_master_start_xmit(struct sk_buff *skb, struct net_device *dev)
 	}
 
 	if ((local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) &&
-	    local->hw.conf.dynamic_ps_timeout > 0) {
+	    local->hw.conf.dynamic_ps_timeout > 0 &&
+	    !local->sw_scanning && !local->hw_scanning) {
 		if (local->hw.conf.flags & IEEE80211_CONF_PS) {
 			ieee80211_stop_queues_by_reason(&local->hw,
 					IEEE80211_QUEUE_STOP_REASON_PS);
-- 
1.6.0.6


  reply	other threads:[~2009-06-10  8:19 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-10  8:19 [PATCH 00/18] wireless: rate cleanups Luis R. Rodriguez
2009-06-10  8:19 ` Luis R. Rodriguez [this message]
2009-06-10 12:53   ` [PATCH 01/18] mac80211: disable moving between PS modes during scan Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 02/18] mac80211: drop frames for sta with no valid rate Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 03/18] ath9k: downgrade assert in rc.c for invalid rate Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 04/18] iwlwifi: remove rs_get_rate workaround Luis R. Rodriguez
2009-06-10 19:08   ` reinette chatre
2009-06-10 20:31     ` Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 05/18] ath9k: cleanup try count for MRR in rate control Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 06/18] ath9k: remove unused min rate calculation code Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 07/18] ath9k: remove unused stepdown when looking for the next rate Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 08/18] ath9k: remove pointless wrapper ath_rc_rate_getidx() Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 09/18] ath9k: rename ath_rc_get_nextlowervalid_txrate() Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 10/18] ath9k: remove unused ath_rc_isvalid_txmask() Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 11/18] ath9k: remove ATH9K_MODE_11B Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 12/18] ath9k: remap ATH9K_MODE_* Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 13/18] ath9k: rename ath_rc_ratefind_ht() to ath_rc_get_highest_rix() Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 14/18] ath9k: remove unnecessary IEEE80211_TX_CTL_NO_ACK checks Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 15/18] mac80211: make minstrel/pid RC use ieee80211_is_data(fc) Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 16/18] iwlwifi: " Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 17/18] mac80211: add helper for management / no-ack frame rate decision Luis R. Rodriguez
2009-06-10  8:19 ` [PATCH 18/18] ath9k: remove rate control wraper Luis R. Rodriguez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1244621975-1238-2-git-send-email-lrodriguez@atheros.com \
    --to=lrodriguez@atheros.com \
    --cc=ath9k-devel@lists.ath9k.org \
    --cc=j@w1.fi \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox