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 ab61d2b558d6..880ad9d170c2 100644
--- a/drivers/net/wireless/adm8211.c
+++ b/drivers/net/wireless/adm8211.c
@@ -1318,21 +1318,19 @@ static void adm8211_bss_info_changed(struct ieee80211_hw *dev,
1318} 1318}
1319 1319
1320static u64 adm8211_prepare_multicast(struct ieee80211_hw *hw, 1320static u64 adm8211_prepare_multicast(struct ieee80211_hw *hw,
1321 int mc_count, struct dev_addr_list *mclist) 1321 struct netdev_hw_addr_list *mc_list)
1322{ 1322{
1323 unsigned int bit_nr, i; 1323 unsigned int bit_nr;
1324 u32 mc_filter[2]; 1324 u32 mc_filter[2];
1325 struct netdev_hw_addr *ha;
1325 1326
1326 mc_filter[1] = mc_filter[0] = 0; 1327 mc_filter[1] = mc_filter[0] = 0;
1327 1328
1328 for (i = 0; i < mc_count; i++) { 1329 netdev_hw_addr_list_for_each(ha, mc_list) {
1329 if (!mclist) 1330 bit_nr = ether_crc(ETH_ALEN, ha->addr) >> 26;
1330 break;
1331 bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26;
1332 1331
1333 bit_nr &= 0x3F; 1332 bit_nr &= 0x3F;
1334 mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31); 1333 mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31);
1335 mclist = mclist->next;
1336 } 1334 }
1337 1335
1338 return mc_filter[0] | ((u64)(mc_filter[1]) << 32); 1336 return mc_filter[0] | ((u64)(mc_filter[1]) << 32);