On Thu, 2017-09-14 at 01:50 -0700, gavinli@xxxxxxxxxxxxxx wrote: > > cmd->filter_flags = cpu_to_le32(MAC_FILTER_ACCEPT_GRP); > > + if (mvm->hw->conf.flags & IEEE80211_CONF_MONITOR) > + cmd->filter_flags |= > cpu_to_le32(MAC_FILTER_IN_PROMISC | > + MAC_FILTER_IN_CONTR > OL_AND_MGMT | > + MAC_FILTER_IN_BEACO > N | > + MAC_FILTER_IN_PROBE > _REQUEST); [...] > + if (changed & IEEE80211_CONF_CHANGE_MONITOR) { > + mutex_lock(&mvm->mutex); > + ieee80211_iterate_active_interfaces(hw, > IEEE80211_IFACE_ITER_NORMAL, > + iwl_mvm_monitor_changed_iterator, > mvm); > + mutex_unlock(&mvm->mutex); > + } This isn't right from a mac80211 perspective - at the very least it should follow the monitor flags; checking CONF_CHANGE_MONITOR is always a bad idea. johannes