aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Coelho <luciano.coelho@intel.com>2017-09-01 11:57:35 -0400
committerLuca Coelho <luciano.coelho@intel.com>2017-09-08 04:47:37 -0400
commit61e7d91bcf7725b9fcd9cbfc5fa0e0f84f19e6de (patch)
tree6ac3f3a86b7c30627bb686abbcdec77c7ac37279
parent97bce57bd7f96e1218751996f549a6e61f18cc8c (diff)
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>
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c6
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,
1643 if (!cmd) 1643 if (!cmd)
1644 goto out; 1644 goto out;
1645 1645
1646 if (changed_flags & FIF_ALLMULTI)
1647 cmd->pass_all = !!(*total_flags & FIF_ALLMULTI);
1648
1649 if (cmd->pass_all)
1650 cmd->count = 0;
1651
1646 iwl_mvm_recalc_multicast(mvm); 1652 iwl_mvm_recalc_multicast(mvm);
1647out: 1653out:
1648 mutex_unlock(&mvm->mutex); 1654 mutex_unlock(&mvm->mutex);