diff options
author | Max Stepanov <Max.Stepanov@intel.com> | 2014-08-04 06:55:01 -0400 |
---|---|---|
committer | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2014-09-14 05:56:38 -0400 |
commit | f3bd58f486acd954ca8d90f8733d752dbd98eec6 (patch) | |
tree | 6fd2e5f71d32123744bd4137d74f891e65ff31c9 | |
parent | a26d4e7b096d85eeea0ce08950744e2887cb46fa (diff) |
iwlwifi: mvm: add MVM_FW_MCAST_FILTER_PASS_ALL option
Add MVM_FW_MCAST_FILTER_PASS_ALL option to iwl-dbg-cfg.ini configuration file
to enable/disable FW multicast filtering.
Signed-off-by: Max Stepanov <Max.Stepanov@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/constants.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/mac80211.c | 11 |
2 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/constants.h b/drivers/net/wireless/iwlwifi/mvm/constants.h index dd00e8f7f765..cb48656a8eaf 100644 --- a/drivers/net/wireless/iwlwifi/mvm/constants.h +++ b/drivers/net/wireless/iwlwifi/mvm/constants.h | |||
@@ -86,5 +86,6 @@ | |||
86 | #define IWL_MVM_BT_COEX_SYNC2SCO 1 | 86 | #define IWL_MVM_BT_COEX_SYNC2SCO 1 |
87 | #define IWL_MVM_BT_COEX_CORUNNING 1 | 87 | #define IWL_MVM_BT_COEX_CORUNNING 1 |
88 | #define IWL_MVM_BT_COEX_MPLUT 1 | 88 | #define IWL_MVM_BT_COEX_MPLUT 1 |
89 | #define IWL_MVM_FW_MCAST_FILTER_PASS_ALL 0 | ||
89 | 90 | ||
90 | #endif /* __MVM_CONSTANTS_H */ | 91 | #endif /* __MVM_CONSTANTS_H */ |
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c index bcfb03ce46be..089d7b37cf90 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c | |||
@@ -1200,14 +1200,15 @@ static u64 iwl_mvm_prepare_multicast(struct ieee80211_hw *hw, | |||
1200 | struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); | 1200 | struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); |
1201 | struct iwl_mcast_filter_cmd *cmd; | 1201 | struct iwl_mcast_filter_cmd *cmd; |
1202 | struct netdev_hw_addr *addr; | 1202 | struct netdev_hw_addr *addr; |
1203 | int addr_count = netdev_hw_addr_list_count(mc_list); | 1203 | int addr_count; |
1204 | bool pass_all = false; | 1204 | bool pass_all; |
1205 | int len; | 1205 | int len; |
1206 | 1206 | ||
1207 | if (addr_count > MAX_MCAST_FILTERING_ADDRESSES) { | 1207 | addr_count = netdev_hw_addr_list_count(mc_list); |
1208 | pass_all = true; | 1208 | pass_all = addr_count > MAX_MCAST_FILTERING_ADDRESSES || |
1209 | IWL_MVM_FW_MCAST_FILTER_PASS_ALL; | ||
1210 | if (pass_all) | ||
1209 | addr_count = 0; | 1211 | addr_count = 0; |
1210 | } | ||
1211 | 1212 | ||
1212 | len = roundup(sizeof(*cmd) + addr_count * ETH_ALEN, 4); | 1213 | len = roundup(sizeof(*cmd) + addr_count * ETH_ALEN, 4); |
1213 | cmd = kzalloc(len, GFP_ATOMIC); | 1214 | cmd = kzalloc(len, GFP_ATOMIC); |