Patchwork pull request: wireless 2012-03-06

login
register
mail settings
Submitter John W. Linville
Date March 6, 2012, 8:15 p.m.
Message ID <20120306201528.GC3353@tuxdriver.com>
Download mbox | patch
Permalink /patch/145268/
State Accepted
Delegated to: David Miller
Headers show

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless.git for-davem

Comments

John W. Linville - March 6, 2012, 8:15 p.m.
commit 7f466cff75f16ac545f34c7876e6f80225a36a6d

Dave,

Here are a few more squeakers hoping for 3.3...

Two of them are for carl9170: a one-line fix for a memory accounting
leak; and a fix that corrects the handling of frames with a couple of
status flags set by mac80211 (enabling delivery to sleeping stations).
Also included is a one-liner for mwifiex that should have been included
in "mwifiex: clear previous security setting during association".
Finally, a one-line fix from Johannes Berg for an iwlwifi regression
brings-up the rear.

Please let me know if there are problems!

Thanks,

John

---

The following changes since commit 5cb917bc4f3882ecee87064483111023086757d3:

  tg3: Fix to use multi queue BQL interfaces (2012-03-06 01:19:08 -0500)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless.git for-davem

Amitkumar Karwar (1):
      mwifiex: reset encryption mode flag before association

Christian Lamparter (1):
      carl9170: fix frame delivery if sta is in powersave mode

Johannes Berg (1):
      iwlwifi: fix wowlan suspend

John W. Linville (1):
      Merge branch 'master' of git://git.kernel.org/.../linville/wireless into for-davem

Nicolas Cavallari (1):
      carl9170: Fix memory accounting when sta is in power-save mode.

 drivers/net/wireless/ath/carl9170/tx.c     |    9 ++++++---
 drivers/net/wireless/iwlwifi/iwl-agn-lib.c |    2 +-
 drivers/net/wireless/mwifiex/cfg80211.c    |    1 +
 3 files changed, 8 insertions(+), 4 deletions(-)
David Miller - March 7, 2012, 8:39 p.m.
From: "John W. Linville" <linville@tuxdriver.com>
Date: Tue, 6 Mar 2012 15:15:28 -0500

> Here are a few more squeakers hoping for 3.3...
> 
> Two of them are for carl9170: a one-line fix for a memory accounting
> leak; and a fix that corrects the handling of frames with a couple of
> status flags set by mac80211 (enabling delivery to sleeping stations).
> Also included is a one-liner for mwifiex that should have been included
> in "mwifiex: clear previous security setting during association".
> Finally, a one-line fix from Johannes Berg for an iwlwifi regression
> brings-up the rear.
> 
> Please let me know if there are problems!

Pulled, but no promises getting these into 3.3
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/wireless/ath/carl9170/tx.c b/drivers/net/wireless/ath/carl9170/tx.c
index d19a9ee..bbc813d 100644
--- a/drivers/net/wireless/ath/carl9170/tx.c
+++ b/drivers/net/wireless/ath/carl9170/tx.c
@@ -1234,6 +1234,7 @@  static bool carl9170_tx_ps_drop(struct ar9170 *ar, struct sk_buff *skb)
 {
 	struct ieee80211_sta *sta;
 	struct carl9170_sta_info *sta_info;
+	struct ieee80211_tx_info *tx_info;
 
 	rcu_read_lock();
 	sta = __carl9170_get_tx_sta(ar, skb);
@@ -1241,16 +1242,18 @@  static bool carl9170_tx_ps_drop(struct ar9170 *ar, struct sk_buff *skb)
 		goto out_rcu;
 
 	sta_info = (void *) sta->drv_priv;
-	if (unlikely(sta_info->sleeping)) {
-		struct ieee80211_tx_info *tx_info;
+	tx_info = IEEE80211_SKB_CB(skb);
 
+	if (unlikely(sta_info->sleeping) &&
+	    !(tx_info->flags & (IEEE80211_TX_CTL_POLL_RESPONSE |
+				IEEE80211_TX_CTL_CLEAR_PS_FILT))) {
 		rcu_read_unlock();
 
-		tx_info = IEEE80211_SKB_CB(skb);
 		if (tx_info->flags & IEEE80211_TX_CTL_AMPDU)
 			atomic_dec(&ar->tx_ampdu_upload);
 
 		tx_info->flags |= IEEE80211_TX_STAT_TX_FILTERED;
+		carl9170_release_dev_space(ar, skb);
 		carl9170_tx_status(ar, skb, false);
 		return true;
 	}
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
index 64cf439..ca78e91 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
@@ -1240,7 +1240,7 @@  int iwlagn_suspend(struct iwl_priv *priv,
 				.flags = CMD_SYNC,
 				.data[0] = key_data.rsc_tsc,
 				.dataflags[0] = IWL_HCMD_DFL_NOCOPY,
-				.len[0] = sizeof(key_data.rsc_tsc),
+				.len[0] = sizeof(*key_data.rsc_tsc),
 			};
 
 			ret = iwl_trans_send_cmd(trans(priv), &rsc_tsc_cmd);
diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c
index 5b2972b..2210a0f 100644
--- a/drivers/net/wireless/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/mwifiex/cfg80211.c
@@ -846,6 +846,7 @@  mwifiex_cfg80211_assoc(struct mwifiex_private *priv, size_t ssid_len, u8 *ssid,
 	priv->sec_info.wpa_enabled = false;
 	priv->sec_info.wpa2_enabled = false;
 	priv->wep_key_curr_index = 0;
+	priv->sec_info.encryption_mode = 0;
 	ret = mwifiex_set_encode(priv, NULL, 0, 0, 1);
 
 	if (mode == NL80211_IFTYPE_ADHOC) {