]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
iwlwifi: mvm: handle FIF_ALLMULTI when setting multicast addresses
authorLuca Coelho <luciano.coelho@intel.com>
Fri, 1 Sep 2017 15:57:35 +0000 (18:57 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 8 Sep 2017 08:47:37 +0000 (11:47 +0300)
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>
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c

index 635db63f972eef720341a0e1a20ae1be8312f3ec..3bcaa82f59b2d2f91a8c8f9159e056642475c577 100644 (file)
@@ -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);