]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Jan 2013 09:57:30 +0000 (10:57 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Jan 2013 09:57:30 +0000 (10:57 +0100)
added patches:
ath9k_htc-fix-memory-leak.patch
mac80211-fix-ft-roaming.patch

queue-3.4/ath9k_htc-fix-memory-leak.patch [new file with mode: 0644]
queue-3.4/mac80211-fix-ft-roaming.patch [new file with mode: 0644]
queue-3.4/series

diff --git a/queue-3.4/ath9k_htc-fix-memory-leak.patch b/queue-3.4/ath9k_htc-fix-memory-leak.patch
new file mode 100644 (file)
index 0000000..2ef0111
--- /dev/null
@@ -0,0 +1,34 @@
+From 0981c3b24ef664f5611008a6e6d0622fac6d892b Mon Sep 17 00:00:00 2001
+From: Sujith Manoharan <c_manoha@qca.qualcomm.com>
+Date: Wed, 9 Jan 2013 16:07:48 +0530
+Subject: ath9k_htc: Fix memory leak
+
+From: Sujith Manoharan <c_manoha@qca.qualcomm.com>
+
+commit 0981c3b24ef664f5611008a6e6d0622fac6d892b upstream.
+
+SKBs that are allocated in the HTC layer do not have callbacks
+registered and hence ended up not being freed, Fix this by freeing
+them properly in the TX completion routine.
+
+Reported-by: Larry Finger <Larry.Finger@lwfinger.net>
+Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
+Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/ath/ath9k/htc_hst.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/net/wireless/ath/ath9k/htc_hst.c
++++ b/drivers/net/wireless/ath/ath9k/htc_hst.c
+@@ -342,6 +342,8 @@ void ath9k_htc_txcompletion_cb(struct ht
+                       endpoint->ep_callbacks.tx(endpoint->ep_callbacks.priv,
+                                                 skb, htc_hdr->endpoint_id,
+                                                 txok);
++              } else {
++                      kfree_skb(skb);
+               }
+       }
diff --git a/queue-3.4/mac80211-fix-ft-roaming.patch b/queue-3.4/mac80211-fix-ft-roaming.patch
new file mode 100644 (file)
index 0000000..0490ad6
--- /dev/null
@@ -0,0 +1,55 @@
+From 1626e0fa740dec8665a973cf2349405cdfeb46dc Mon Sep 17 00:00:00 2001
+From: Johannes Berg <johannes.berg@intel.com>
+Date: Fri, 11 Jan 2013 14:34:25 +0100
+Subject: mac80211: fix FT roaming
+
+From: Johannes Berg <johannes.berg@intel.com>
+
+commit 1626e0fa740dec8665a973cf2349405cdfeb46dc upstream.
+
+During FT roaming, wpa_supplicant attempts to set the
+key before association. This used to be rejected, but
+as a side effect of my commit 66e67e418908442389d3a9e
+("mac80211: redesign auth/assoc") the key was accepted
+causing hardware crypto to not be used for it as the
+station isn't added to the driver yet.
+
+It would be possible to accept the key and then add it
+to the driver when the station has been added. However,
+this may run into issues with drivers using the state-
+based station adding if they accept the key only after
+association like it used to be.
+
+For now, revert to the behaviour from before the auth
+and assoc change.
+
+Reported-by: Cédric Debarge <cedric.debarge@acksys.fr>
+Tested-by: Cédric Debarge <cedric.debarge@acksys.fr>
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/mac80211/cfg.c |   12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+--- a/net/mac80211/cfg.c
++++ b/net/mac80211/cfg.c
+@@ -151,7 +151,17 @@ static int ieee80211_add_key(struct wiph
+                       sta = sta_info_get(sdata, mac_addr);
+               else
+                       sta = sta_info_get_bss(sdata, mac_addr);
+-              if (!sta) {
++              /*
++               * The ASSOC test makes sure the driver is ready to
++               * receive the key. When wpa_supplicant has roamed
++               * using FT, it attempts to set the key before
++               * association has completed, this rejects that attempt
++               * so it will set the key again after assocation.
++               *
++               * TODO: accept the key if we have a station entry and
++               *       add it to the device after the station.
++               */
++              if (!sta || !test_sta_flag(sta, WLAN_STA_ASSOC)) {
+                       ieee80211_key_free(sdata->local, key);
+                       err = -ENOENT;
+                       goto out_unlock;
index 7fb711d8ce42464f4339dc62821defd9a6750688..e68aba2041c2a360f8f1479a755f53056e6d3777 100644 (file)
@@ -13,3 +13,5 @@ xfs-fix-possible-use-after-free-with-aio.patch
 mwifiex-fix-typo-in-pcie-adapter-null-check.patch
 iwlegacy-fix-ibss-cleanup.patch
 brcmsmac-increase-timer-reference-count-for-new-timers-only.patch
+mac80211-fix-ft-roaming.patch
+ath9k_htc-fix-memory-leak.patch