mac80211: make active monitor injection work w/ HW queue
authorJohannes Berg <johannes.berg@intel.com>
Sun, 14 Jul 2013 20:39:20 +0000 (23:39 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 16 Jul 2013 06:58:19 +0000 (09:58 +0300)
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>
net/mac80211/tx.c

index f82301b6cef2511d98a8c3970232b1b148669bc4..be4d3caf4879b5eb09d6a49d524cb4faa81c2752 100644 (file)
@@ -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;