aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/adm8211.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/adm8211.c')
-rw-r--r--drivers/net/wireless/adm8211.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/net/wireless/adm8211.c b/drivers/net/wireless/adm8211.c
index 547912e6843f..2277998b7264 100644
--- a/drivers/net/wireless/adm8211.c
+++ b/drivers/net/wireless/adm8211.c
@@ -1317,21 +1317,19 @@ static void adm8211_bss_info_changed(struct ieee80211_hw *dev,
1317} 1317}
1318 1318
1319static u64 adm8211_prepare_multicast(struct ieee80211_hw *hw, 1319static u64 adm8211_prepare_multicast(struct ieee80211_hw *hw,
1320 int mc_count, struct dev_addr_list *mclist) 1320 struct netdev_hw_addr_list *mc_list)
1321{ 1321{
1322 unsigned int bit_nr, i; 1322 unsigned int bit_nr;
1323 u32 mc_filter[2]; 1323 u32 mc_filter[2];
1324 struct netdev_hw_addr *ha;
1324 1325
1325 mc_filter[1] = mc_filter[0] = 0; 1326 mc_filter[1] = mc_filter[0] = 0;
1326 1327
1327 for (i = 0; i < mc_count; i++) { 1328 netdev_hw_addr_list_for_each(ha, mc_list) {
1328 if (!mclist) 1329 bit_nr = ether_crc(ETH_ALEN, ha->addr) >> 26;
1329 break;
1330 bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26;
1331 1330
1332 bit_nr &= 0x3F; 1331 bit_nr &= 0x3F;
1333 mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31); 1332 mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31);
1334 mclist = mclist->next;
1335 } 1333 }
1336 1334
1337 return mc_filter[0] | ((u64)(mc_filter[1]) << 32); 1335 return mc_filter[0] | ((u64)(mc_filter[1]) << 32);