--- /dev/null
+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
--- /dev/null
+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) &&
--- /dev/null
+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, ¶ms))
+ 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);
+
--- /dev/null
+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);
+
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