]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 6 Apr 2015 10:57:02 +0000 (12:57 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 6 Apr 2015 10:57:02 +0000 (12:57 +0200)
added patches:
mac80211-disable-u-apsd-queues-by-default.patch
mac80211-drop-unencrypted-frames-in-mesh-fwding.patch
nl80211-ignore-ht-vht-capabilities-without-qos-wmm.patch
revert-iwlwifi-mvm-fix-failure-path-when-power_update.patch

queue-3.14/mac80211-disable-u-apsd-queues-by-default.patch [new file with mode: 0644]
queue-3.14/mac80211-drop-unencrypted-frames-in-mesh-fwding.patch [new file with mode: 0644]
queue-3.14/nl80211-ignore-ht-vht-capabilities-without-qos-wmm.patch [new file with mode: 0644]
queue-3.14/revert-iwlwifi-mvm-fix-failure-path-when-power_update.patch [new file with mode: 0644]
queue-3.14/series

diff --git a/queue-3.14/mac80211-disable-u-apsd-queues-by-default.patch b/queue-3.14/mac80211-disable-u-apsd-queues-by-default.patch
new file mode 100644 (file)
index 0000000..c9dfc23
--- /dev/null
@@ -0,0 +1,73 @@
+From aa75ebc275b2a91b193654a177daf900ad6703f0 Mon Sep 17 00:00:00 2001
+From: Michal Kazior <michal.kazior@tieto.com>
+Date: Tue, 10 Feb 2015 12:48:44 +0100
+Subject: mac80211: disable u-APSD queues by default
+
+From: Michal Kazior <michal.kazior@tieto.com>
+
+commit aa75ebc275b2a91b193654a177daf900ad6703f0 upstream.
+
+Some APs experience problems when working with
+U-APSD. Decreasing the probability of that
+happening by using legacy mode for all ACs but VO
+isn't enough.
+
+Cisco 4410N originally forced us to enable VO by
+default only because it treated non-VO ACs as
+legacy.
+
+However some APs (notably Netgear R7000) silently
+reclassify packets to different ACs. Since u-APSD
+ACs require trigger frames for frame retrieval
+clients would never see some frames (e.g. ARP
+responses) or would fetch them accidentally after
+a long time.
+
+It makes little sense to enable u-APSD queues by
+default because it needs userspace applications to
+be aware of it to actually take advantage of the
+possible additional powersavings. Implicitly
+depending on driver autotrigger frame support
+doesn't make much sense.
+
+Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/mac80211/ieee80211_i.h |   23 +++++++++++++++++------
+ 1 file changed, 17 insertions(+), 6 deletions(-)
+
+--- a/net/mac80211/ieee80211_i.h
++++ b/net/mac80211/ieee80211_i.h
+@@ -57,13 +57,24 @@ struct ieee80211_local;
+ #define IEEE80211_UNSET_POWER_LEVEL   INT_MIN
+ /*
+- * Some APs experience problems when working with U-APSD. Decrease the
+- * probability of that happening by using legacy mode for all ACs but VO.
+- * The AP that caused us trouble was a Cisco 4410N. It ignores our
+- * setting, and always treats non-VO ACs as legacy.
++ * Some APs experience problems when working with U-APSD. Decreasing the
++ * probability of that happening by using legacy mode for all ACs but VO isn't
++ * enough.
++ *
++ * Cisco 4410N originally forced us to enable VO by default only because it
++ * treated non-VO ACs as legacy.
++ *
++ * However some APs (notably Netgear R7000) silently reclassify packets to
++ * different ACs. Since u-APSD ACs require trigger frames for frame retrieval
++ * clients would never see some frames (e.g. ARP responses) or would fetch them
++ * accidentally after a long time.
++ *
++ * It makes little sense to enable u-APSD queues by default because it needs
++ * userspace applications to be aware of it to actually take advantage of the
++ * possible additional powersavings. Implicitly depending on driver autotrigger
++ * frame support doesn't make much sense.
+  */
+-#define IEEE80211_DEFAULT_UAPSD_QUEUES \
+-      IEEE80211_WMM_IE_STA_QOSINFO_AC_VO
++#define IEEE80211_DEFAULT_UAPSD_QUEUES 0
+ #define IEEE80211_DEFAULT_MAX_SP_LEN          \
+       IEEE80211_WMM_IE_STA_QOSINFO_SP_ALL
diff --git a/queue-3.14/mac80211-drop-unencrypted-frames-in-mesh-fwding.patch b/queue-3.14/mac80211-drop-unencrypted-frames-in-mesh-fwding.patch
new file mode 100644 (file)
index 0000000..1d4ac4a
--- /dev/null
@@ -0,0 +1,34 @@
+From d0c22119f574b851e63360c6b8660fe9593bbc3c Mon Sep 17 00:00:00 2001
+From: Bob Copeland <me@bobcopeland.com>
+Date: Mon, 2 Mar 2015 14:28:52 -0500
+Subject: mac80211: drop unencrypted frames in mesh fwding
+
+From: Bob Copeland <me@bobcopeland.com>
+
+commit d0c22119f574b851e63360c6b8660fe9593bbc3c upstream.
+
+The mesh forwarding path was not checking that data
+frames were protected when running an encrypted network;
+add the necessary check.
+
+Reported-by: Johannes Berg <johannes@sipsolutions.net>
+Signed-off-by: Bob Copeland <me@bobcopeland.com>
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/mac80211/rx.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/net/mac80211/rx.c
++++ b/net/mac80211/rx.c
+@@ -2107,6 +2107,9 @@ ieee80211_rx_h_mesh_fwding(struct ieee80
+       hdr = (struct ieee80211_hdr *) skb->data;
+       mesh_hdr = (struct ieee80211s_hdr *) (skb->data + hdrlen);
++      if (ieee80211_drop_unencrypted(rx, hdr->frame_control))
++              return RX_DROP_MONITOR;
++
+       /* frame is in RMC, don't forward */
+       if (ieee80211_is_data(hdr->frame_control) &&
+           is_multicast_ether_addr(hdr->addr1) &&
diff --git a/queue-3.14/nl80211-ignore-ht-vht-capabilities-without-qos-wmm.patch b/queue-3.14/nl80211-ignore-ht-vht-capabilities-without-qos-wmm.patch
new file mode 100644 (file)
index 0000000..8217c95
--- /dev/null
@@ -0,0 +1,42 @@
+From 496fcc294daab18799e190c0264863d653588d1f Mon Sep 17 00:00:00 2001
+From: Johannes Berg <johannes.berg@intel.com>
+Date: Thu, 12 Mar 2015 08:53:27 +0200
+Subject: nl80211: ignore HT/VHT capabilities without QoS/WMM
+
+From: Johannes Berg <johannes.berg@intel.com>
+
+commit 496fcc294daab18799e190c0264863d653588d1f upstream.
+
+As HT/VHT depend heavily on QoS/WMM, it's not a good idea to
+let userspace add clients that have HT/VHT but not QoS/WMM.
+Since it does so in certain cases we've observed (client is
+using HT IEs but not QoS/WMM) just ignore the HT/VHT info at
+this point and don't pass it down to the drivers which might
+unconditionally use it.
+
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/wireless/nl80211.c |   10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+--- a/net/wireless/nl80211.c
++++ b/net/wireless/nl80211.c
+@@ -4190,6 +4190,16 @@ static int nl80211_new_station(struct sk
+       if (parse_station_flags(info, dev->ieee80211_ptr->iftype, &params))
+               return -EINVAL;
++      /* HT/VHT requires QoS, but if we don't have that just ignore HT/VHT
++       * as userspace might just pass through the capabilities from the IEs
++       * directly, rather than enforcing this restriction and returning an
++       * error in this case.
++       */
++      if (!(params.sta_flags_set & BIT(NL80211_STA_FLAG_WME))) {
++              params.ht_capa = NULL;
++              params.vht_capa = NULL;
++      }
++
+       /* When you run into this, adjust the code below for the new flag */
+       BUILD_BUG_ON(NL80211_STA_FLAG_MAX != 7);
diff --git a/queue-3.14/revert-iwlwifi-mvm-fix-failure-path-when-power_update.patch b/queue-3.14/revert-iwlwifi-mvm-fix-failure-path-when-power_update.patch
new file mode 100644 (file)
index 0000000..18295a2
--- /dev/null
@@ -0,0 +1,27 @@
+From 349cf6f6b43986575af2ff253138df2453110d7b Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Mon, 6 Apr 2015 12:18:59 +0200
+Subject: Revert "iwlwifi: mvm: fix failure path when power_update fails in add_interface"
+
+This reverts commit 5ac97a1b97e50ef197b64b72c1cd71779e4ecbbe
+
+It was incorrectly applied, as it merged with fuzz.
+
+Reported-by: Jiri Slaby <jslaby@suse.cz>
+Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
+
+---
+ drivers/net/wireless/iwlwifi/mvm/mac80211.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
++++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
+@@ -594,7 +594,7 @@ static int iwl_mvm_mac_add_interface(str
+       ret = iwl_mvm_mac_ctxt_add(mvm, vif);
+       if (ret)
+-              goto out_remove_mac;
++              goto out_release;
+       iwl_mvm_power_disable(mvm, vif);
index 5c25adcf9ee8dab6c3f10b0dddac33c9fa39d1b0..793f449fca911ea1b5a01992e8b2f41fe480d20d 100644 (file)
@@ -16,3 +16,7 @@ regmap-regcache-rbtree-fix-present-bitmap-resize.patch
 clocksource-efm32-fix-a-null-pointer-dereference.patch
 tcm_fc-missing-curly-braces-in-ft_invl_hw_context.patch
 tcm_qla2xxx-fix-incorrect-use-of-__transport_register_session.patch
+nl80211-ignore-ht-vht-capabilities-without-qos-wmm.patch
+mac80211-disable-u-apsd-queues-by-default.patch
+mac80211-drop-unencrypted-frames-in-mesh-fwding.patch
+revert-iwlwifi-mvm-fix-failure-path-when-power_update.patch