linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Berg <johannes@sipsolutions.net>
To: John Linville <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
Subject: [PATCH 2/3] mac80211: make conf_tx non-atomic
Date: Mon, 08 Sep 2008 11:05:09 +0200	[thread overview]
Message-ID: <20080908090634.619565000@sipsolutions.net> (raw)
In-Reply-To: 20080908090507.641740000@sipsolutions.net

The conf_tx callback currently needs to be atomic, this requirement
is just because it can be called from scanning. This rearranges it
slightly to only update while not scanning (which is fine, we'll be
getting beacons when associated) and thus removes the atomic
requirement.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
---
 include/net/mac80211.h |    2 +-
 net/mac80211/mlme.c    |   13 ++++++++-----
 2 files changed, 9 insertions(+), 6 deletions(-)

--- everything.orig/include/net/mac80211.h	2008-09-08 10:20:24.000000000 +0200
+++ everything/include/net/mac80211.h	2008-09-08 10:21:17.000000000 +0200
@@ -1142,7 +1142,7 @@ enum ieee80211_ampdu_mlme_action {
  *	of assocaited station or AP.
  *
  * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max),
- *	bursting) for a hardware TX queue. Must be atomic.
+ *	bursting) for a hardware TX queue.
  *
  * @get_tx_stats: Get statistics of the current TX queue status. This is used
  *	to get number of currently queued packets (queue length), maximum queue
--- everything.orig/net/mac80211/mlme.c	2008-09-08 10:21:09.000000000 +0200
+++ everything/net/mac80211/mlme.c	2008-09-08 10:21:17.000000000 +0200
@@ -2873,15 +2873,18 @@ static void ieee80211_rx_mgmt_beacon(str
 	    memcmp(ifsta->bssid, mgmt->bssid, ETH_ALEN) != 0)
 		return;
 
-	ieee80211_sta_wmm_params(local, ifsta, elems.wmm_param,
-				 elems.wmm_param_len);
-
 	/* Do not send changes to driver if we are scanning. This removes
-	 * requirement that driver's bss_info_changed function needs to be
-	 * atomic. */
+	 * requirement that a driver's bss_info_changed/conf_tx functions
+	 * need to be atomic.
+	 * This is really ugly code, we should rewrite scanning and make
+	 * all this more understandable for humans.
+	 */
 	if (local->sta_sw_scanning || local->sta_hw_scanning)
 		return;
 
+	ieee80211_sta_wmm_params(local, ifsta, elems.wmm_param,
+				 elems.wmm_param_len);
+
 	if (elems.erp_info && elems.erp_info_len >= 1)
 		changed |= ieee80211_handle_erp_ie(sdata, elems.erp_info[0]);
 	else {

-- 


  parent reply	other threads:[~2008-09-08  9:08 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-08  9:05 [PATCH 0/3] small mac80211 updates Johannes Berg
2008-09-08  9:05 ` [PATCH 1/3] mac80211: move some RCU locking into an if branch Johannes Berg
2008-09-08  9:05 ` Johannes Berg [this message]
2008-09-08  9:05 ` [PATCH 3/3] mac80211: BSS info: check channel first Johannes Berg
2008-09-08 13:41 ` [PATCH 4/3] mac80211: fix action frame length checks Johannes Berg
2008-09-08 14:31 ` [PATCH 5/3] mac80211: fix typo in action frame handling Johannes Berg
2008-09-08 20:58   ` Tomas Winkler
2008-09-09  6:30     ` Johannes Berg
2008-09-08 14:40 ` [PATCH 6/3] mac80211: move IE parsing to util file Johannes Berg

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=20080908090634.619565000@sipsolutions.net \
    --to=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;
as well as URLs for NNTP newsgroup(s).