diff options
author | Luca Coelho <luciano.coelho@intel.com> | 2017-09-01 17:57:35 +0200 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2017-09-08 10:47:37 +0200 |
commit | 61e7d91bcf7725b9fcd9cbfc5fa0e0f84f19e6de (patch) | |
tree | 6ac3f3a86b7c30627bb686abbcdec77c7ac37279 /drivers/net/wireless | |
parent | iwlwifi: mvm: use IWL_HCMD_NOCOPY for MCAST_FILTER_CMD (diff) | |
download | linux-61e7d91bcf7725b9fcd9cbfc5fa0e0f84f19e6de.tar.xz linux-61e7d91bcf7725b9fcd9cbfc5fa0e0f84f19e6de.zip |
iwlwifi: mvm: handle FIF_ALLMULTI when setting multicast addresses
We were ignoring the FIF_ALLMULTI flag when setting the multicast
addresses with MCAST_FILTER_CMD. Check if this flag is set and enable
pass_all accordingly. We also need to set the count to 0 if pass_all
is enable so we don't pass addresses to the firmware when not needed
(as doing so causes an assert).
This fixes https://bugzilla.kernel.org/show_bug.cgi?id=196741
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c index 635db63f972e..3bcaa82f59b2 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c @@ -1643,6 +1643,12 @@ static void iwl_mvm_configure_filter(struct ieee80211_hw *hw, if (!cmd) goto out; + if (changed_flags & FIF_ALLMULTI) + cmd->pass_all = !!(*total_flags & FIF_ALLMULTI); + + if (cmd->pass_all) + cmd->count = 0; + iwl_mvm_recalc_multicast(mvm); out: mutex_unlock(&mvm->mutex); |