Explorar o código

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>
Johannes Berg %!s(int64=12) %!d(string=hai) anos
pai
achega
c82b5a74cc
Modificáronse 1 ficheiros con 4 adicións e 0 borrados
  1. 4 0
      net/mac80211/tx.c

+ 4 - 0
net/mac80211/tx.c

@@ -1272,6 +1272,10 @@ static bool __ieee80211_tx(struct ieee80211_local *local,
 
 
 	switch (sdata->vif.type) {
 	switch (sdata->vif.type) {
 	case NL80211_IFTYPE_MONITOR:
 	case NL80211_IFTYPE_MONITOR:
+		if (sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE) {
+			vif = &sdata->vif;
+			break;
+		}
 		sdata = rcu_dereference(local->monitor_sdata);
 		sdata = rcu_dereference(local->monitor_sdata);
 		if (sdata) {
 		if (sdata) {
 			vif = &sdata->vif;
 			vif = &sdata->vif;