mac80211: pass AP vif pointer for VLANs
authorJohannes Berg <johannes@sipsolutions.net>
Thu, 11 Sep 2008 03:27:40 +0000 (05:27 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 15 Sep 2008 20:48:24 +0000 (16:48 -0400)
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>
net/mac80211/tx.c

index 7468495d6f9ce943b7b0cbb661182605dd180310..698c8233e6b3d5604016ee21452e2ac1ee293b01 100644 (file)
@@ -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);