]> git.baikalelectronics.ru Git - kernel.git/commit
mac80211: fix VLAN handling with TXQs
authorJohannes Berg <johannes.berg@intel.com>
Thu, 22 Jun 2017 10:20:30 +0000 (12:20 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 5 Sep 2017 09:28:43 +0000 (11:28 +0200)
commit2d62f66b1e4a91cb6b9509b9600ec8a764542e5f
tree4e5bafae4e1a89365fff06ed05037aca808b61cc
parentb417be28993b92bc3fc14ac35cf8b152e48fd4a5
mac80211: fix VLAN handling with TXQs

With TXQs, the AP_VLAN interfaces are resolved to their owner AP
interface when enqueuing the frame, which makes sense since the
frame really goes out on that as far as the driver is concerned.

However, this introduces a problem: frames to be encrypted with
a VLAN-specific GTK will now be encrypted with the AP GTK, since
the information about which virtual interface to use to select
the key is taken from the TXQ.

Fix this by preserving info->control.vif and using that in the
dequeue function. This now requires doing the driver-mapping
in the dequeue as well.

Since there's no way to filter the frames that are sitting on a
TXQ, drop all frames, which may affect other interfaces, when an
AP_VLAN is removed.

Cc: stable@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/mac80211.h
net/mac80211/iface.c
net/mac80211/tx.c