diff options
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.patch | 27 |
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); |