@@ -3476,6 +3504,13 @@ static void ath10k_configure_filter(struct
ieee80211_hw *hw,

          changed_flags &= SUPPORTED_FILTERS;
          *total_flags &= SUPPORTED_FILTERS;
+       if (*total_flags & FIF_PROMISC_IN_BSS) {
+               if (ar->num_started_vdevs) {
+                       ath10k_dbg(ar, ATH10K_DBG_MAC,
+                                  "mac does not enable promiscuous mode
when already a vdev is running\n");
+                       *total_flags &= ~FIF_PROMISC_IN_BSS;
+               }
+       }


There's no need for that, is there? The monitor_recalc() is supposed
to deal with this.


Right, but we may not want to create any inconsistencies between
*total_flags and actual
filters enabled in the driver?.

See the "DOC: Frame filtering" in include/net/mac80211.h. ath10k
either always delivers frames IN_BSS (AP operation) or can be forced
to (via monitor vdev for STA/IBSS operation) so FIF_PROMISC_IN_BSS
should never be cleared.

Your are right. We should not be clearing that flag as long as we support
that functionality in one or other way. Thanks.

Vasanth

_______________________________________________
ath10k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath10k

Reply via email to