mac80211: assign AP_VLAN hw queues correctly
authorJohannes Berg <johannes.berg@intel.com>
Thu, 23 May 2013 21:09:56 +0000 (23:09 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 27 May 2013 09:26:47 +0000 (11:26 +0200)
A lot of code in mac80211 assumes that the hw queues are
set up correctly for all interfaces (except for monitor)
but this isn't true for AP_VLAN interfaces. Fix this by
copying the AP master configuration when an AP VLAN is
brought up, after this the AP interface can't change its
configuration any more and needs to be brought down to
change it, which also forces AP_VLAN interfaces down, so
just copying in open() is sufficient.

Reported-by: Jouni Malinen <j@w1.fi>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/iface.c

index 68f51c3af49f572d1a32c6a0f64a284d2b6c4208..00e2238355f0aadb41b88f2aeb3b80710a16b4f4 100644 (file)
@@ -474,6 +474,9 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
                        master->control_port_protocol;
                sdata->control_port_no_encrypt =
                        master->control_port_no_encrypt;
+               sdata->vif.cab_queue = master->vif.cab_queue;
+               memcpy(sdata->vif.hw_queue, master->vif.hw_queue,
+                      sizeof(sdata->vif.hw_queue));
                break;
                }
        case NL80211_IFTYPE_AP: