aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/313-mac80211-drop-4-addr-VLAN-frames-earlier-if-not-conn.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/313-mac80211-drop-4-addr-VLAN-frames-earlier-if-not-conn.patch')
-rw-r--r--package/kernel/mac80211/patches/313-mac80211-drop-4-addr-VLAN-frames-earlier-if-not-conn.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/313-mac80211-drop-4-addr-VLAN-frames-earlier-if-not-conn.patch b/package/kernel/mac80211/patches/313-mac80211-drop-4-addr-VLAN-frames-earlier-if-not-conn.patch
new file mode 100644
index 0000000000..f493f654f8
--- /dev/null
+++ b/package/kernel/mac80211/patches/313-mac80211-drop-4-addr-VLAN-frames-earlier-if-not-conn.patch
@@ -0,0 +1,27 @@
+From: Johannes Berg <johannes.berg@intel.com>
+Date: Fri, 20 Mar 2015 16:24:22 +0100
+Subject: [PATCH] mac80211: drop 4-addr VLAN frames earlier if not
+ connected
+
+If there's no station on the 4-addr VLAN interface, then frames
+cannot be transmitted. Drop such frames earlier, before setting
+up all the information for them.
+
+We should keep the old check though since that code might be used
+for other internally-generated frames.
+
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+---
+
+--- a/net/mac80211/tx.c
++++ b/net/mac80211/tx.c
+@@ -1921,6 +1921,9 @@ static struct sk_buff *ieee80211_build_h
+ authorized = test_sta_flag(sta, WLAN_STA_AUTHORIZED);
+ wme_sta = sta->sta.wme;
+ have_station = true;
++ } else if (sdata->wdev.use_4addr) {
++ ret = -ENOLINK;
++ goto free;
+ }
+ ap_sdata = container_of(sdata->bss, struct ieee80211_sub_if_data,
+ u.ap);