From: Johannes Berg <johannes@sipsolutions.net>
Date: Thu, 11 Sep 2008 03:27:40 +0000 (+0200)
Subject: mac80211: pass AP vif pointer for VLANs
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=3061307013267c2c75efae3925f461858d832101;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git

mac80211: pass AP vif pointer for VLANs

We cannot pass a VLAN vif pointer to the driver since those are
entirely virtual and we never tell the driver.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---

diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 7468495d6f9c..698c8233e6b3 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1351,6 +1351,10 @@ int ieee80211_master_start_xmit(struct sk_buff *skb,
 		return 0;
 	}
 
+	if (osdata->vif.type == NL80211_IFTYPE_AP_VLAN)
+		osdata = container_of(osdata->bss,
+				      struct ieee80211_sub_if_data,
+				      u.ap);
 	info->control.vif = &osdata->vif;
 	ret = ieee80211_tx(odev, skb);
 	dev_put(odev);