summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2017-10-31 00:48:32 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2017-10-31 00:48:32 -0400
commitbd3d9037738bd614e590223157831f97cfc92666 (patch)
tree51b318b2264f00f73edd4834ee9fff3f58c73053
parent6315579d3870700313b2d645db7c46263340dc2b (diff)
downloadlongterm-queue-4.8-bd3d9037738bd614e590223157831f97cfc92666.tar.gz
mac80211: remove patch unapplicable for v4.8
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--queue/mac80211-fix-MU-MIMO-follow-MAC-mode.patch123
-rw-r--r--queue/series1
2 files changed, 0 insertions, 124 deletions
diff --git a/queue/mac80211-fix-MU-MIMO-follow-MAC-mode.patch b/queue/mac80211-fix-MU-MIMO-follow-MAC-mode.patch
deleted file mode 100644
index 0da072b..0000000
--- a/queue/mac80211-fix-MU-MIMO-follow-MAC-mode.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From 9e478066eae41211c92a8f63cc69aafc391bd6ab Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg@intel.com>
-Date: Thu, 13 Apr 2017 14:23:49 +0200
-Subject: [PATCH] mac80211: fix MU-MIMO follow-MAC mode
-
-commit 9e478066eae41211c92a8f63cc69aafc391bd6ab upstream.
-
-There are two bugs in the follow-MAC code:
- * it treats the radiotap header as the 802.11 header
- (therefore it can't possibly work)
- * it doesn't verify that the skb data it accesses is actually
- present in the header, which is mitigated by the first point
-
-Fix this by moving all of this out into a separate function.
-This function copies the data it needs using skb_copy_bits()
-to make sure it can be accessed if it's paged, and offsets
-that by the possibly present vendor radiotap header.
-
-This also makes all those conditions more readable.
-
-Cc: stable@vger.kernel.org
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-
-diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
-index e48724a6725e..4b12c70c85f0 100644
---- a/net/mac80211/rx.c
-+++ b/net/mac80211/rx.c
-@@ -208,6 +208,51 @@ ieee80211_rx_radiotap_hdrlen(struct ieee80211_local *local,
- return len;
- }
-
-+static void ieee80211_handle_mu_mimo_mon(struct ieee80211_sub_if_data *sdata,
-+ struct sk_buff *skb,
-+ int rtap_vendor_space)
-+{
-+ struct {
-+ struct ieee80211_hdr_3addr hdr;
-+ u8 category;
-+ u8 action_code;
-+ } __packed action;
-+
-+ if (!sdata)
-+ return;
-+
-+ BUILD_BUG_ON(sizeof(action) != IEEE80211_MIN_ACTION_SIZE + 1);
-+
-+ if (skb->len < rtap_vendor_space + sizeof(action) +
-+ VHT_MUMIMO_GROUPS_DATA_LEN)
-+ return;
-+
-+ if (!is_valid_ether_addr(sdata->u.mntr.mu_follow_addr))
-+ return;
-+
-+ skb_copy_bits(skb, rtap_vendor_space, &action, sizeof(action));
-+
-+ if (!ieee80211_is_action(action.hdr.frame_control))
-+ return;
-+
-+ if (action.category != WLAN_CATEGORY_VHT)
-+ return;
-+
-+ if (action.action_code != WLAN_VHT_ACTION_GROUPID_MGMT)
-+ return;
-+
-+ if (!ether_addr_equal(action.hdr.addr1, sdata->u.mntr.mu_follow_addr))
-+ return;
-+
-+ skb = skb_copy(skb, GFP_ATOMIC);
-+ if (!skb)
-+ return;
-+
-+ skb->pkt_type = IEEE80211_SDATA_QUEUE_TYPE_FRAME;
-+ skb_queue_tail(&sdata->skb_queue, skb);
-+ ieee80211_queue_work(&sdata->local->hw, &sdata->work);
-+}
-+
- /*
- * ieee80211_add_rx_radiotap_header - add radiotap header
- *
-@@ -515,7 +560,6 @@ ieee80211_rx_monitor(struct ieee80211_local *local, struct sk_buff *origskb,
- struct net_device *prev_dev = NULL;
- int present_fcs_len = 0;
- unsigned int rtap_vendor_space = 0;
-- struct ieee80211_mgmt *mgmt;
- struct ieee80211_sub_if_data *monitor_sdata =
- rcu_dereference(local->monitor_sdata);
-
-@@ -553,6 +597,8 @@ ieee80211_rx_monitor(struct ieee80211_local *local, struct sk_buff *origskb,
- return remove_monitor_info(local, origskb, rtap_vendor_space);
- }
-
-+ ieee80211_handle_mu_mimo_mon(monitor_sdata, origskb, rtap_vendor_space);
-+
- /* room for the radiotap header based on driver features */
- rt_hdrlen = ieee80211_rx_radiotap_hdrlen(local, status, origskb);
- needed_headroom = rt_hdrlen - rtap_vendor_space;
-@@ -618,23 +664,6 @@ ieee80211_rx_monitor(struct ieee80211_local *local, struct sk_buff *origskb,
- ieee80211_rx_stats(sdata->dev, skb->len);
- }
-
-- mgmt = (void *)skb->data;
-- if (monitor_sdata &&
-- skb->len >= IEEE80211_MIN_ACTION_SIZE + 1 + VHT_MUMIMO_GROUPS_DATA_LEN &&
-- ieee80211_is_action(mgmt->frame_control) &&
-- mgmt->u.action.category == WLAN_CATEGORY_VHT &&
-- mgmt->u.action.u.vht_group_notif.action_code == WLAN_VHT_ACTION_GROUPID_MGMT &&
-- is_valid_ether_addr(monitor_sdata->u.mntr.mu_follow_addr) &&
-- ether_addr_equal(mgmt->da, monitor_sdata->u.mntr.mu_follow_addr)) {
-- struct sk_buff *mu_skb = skb_copy(skb, GFP_ATOMIC);
--
-- if (mu_skb) {
-- mu_skb->pkt_type = IEEE80211_SDATA_QUEUE_TYPE_FRAME;
-- skb_queue_tail(&monitor_sdata->skb_queue, mu_skb);
-- ieee80211_queue_work(&local->hw, &monitor_sdata->work);
-- }
-- }
--
- if (prev_dev) {
- skb->dev = prev_dev;
- netif_receive_skb(skb);
---
-2.12.0
-
diff --git a/queue/series b/queue/series
index 63703b7..25e0673 100644
--- a/queue/series
+++ b/queue/series
@@ -9,7 +9,6 @@ s390-mm-fix-CMMA-vs-KSM-vs-others.patch
Input-elantech-add-Fujitsu-Lifebook-E547-to-force-cr.patch
mmc-sdhci-esdhc-imx-increase-the-pad-I-O-drive-stren.patch
mac80211-reject-ToDS-broadcast-data-frames.patch
-mac80211-fix-MU-MIMO-follow-MAC-mode.patch
ubi-upd-Always-flush-after-prepared-for-an-update.patch
powerpc-kprobe-Fix-oops-when-kprobed-on-stdu-instruc.patch
x86-mce-AMD-Give-a-name-to-MCA-bank-3-when-accessed-.patch