summaryrefslogtreecommitdiffstats
path: root/net/mac80211/tx.c
diff options
context:
space:
mode:
authorJohannes Berg2013-07-14 22:39:20 +0200
committerJohannes Berg2013-07-16 08:58:19 +0200
commitc82b5a74cc739385db6e4275fe504a0e9469bf01 (patch)
tree6fd33a807fafe5f438238eb4c88b32857c4e19a1 /net/mac80211/tx.c
parentmac80211_hwsim: claim active monitor support (diff)
downloadkernel-qcow2-linux-c82b5a74cc739385db6e4275fe504a0e9469bf01.tar.gz
kernel-qcow2-linux-c82b5a74cc739385db6e4275fe504a0e9469bf01.tar.xz
kernel-qcow2-linux-c82b5a74cc739385db6e4275fe504a0e9469bf01.zip
mac80211: make active monitor injection work w/ HW queue
When a driver (like hwsim) uses HW queue control an active monitor vif needs to be used for the queues, make the code do that. Otherwise we'd bail out and drop the frames. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r--net/mac80211/tx.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index f82301b6cef2..be4d3caf4879 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1272,6 +1272,10 @@ static bool __ieee80211_tx(struct ieee80211_local *local,
switch (sdata->vif.type) {
case NL80211_IFTYPE_MONITOR:
+ if (sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE) {
+ vif = &sdata->vif;
+ break;
+ }
sdata = rcu_dereference(local->monitor_sdata);
if (sdata) {
vif = &sdata->vif;