aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/adm8211.c
diff options
context:
space:
mode:
authorJiri Pirko <jpirko@redhat.com>2010-04-01 17:22:57 -0400
committerDavid S. Miller <davem@davemloft.net>2010-04-03 17:22:15 -0400
commit22bedad3ce112d5ca1eaf043d4990fa2ed698c87 (patch)
treeb6fba5688d48b1396f01d13ee53610dea7749c15 /drivers/net/wireless/adm8211.c
parenta748ee2426817a95b1f03012d8f339c45c722ae1 (diff)
net: convert multicast list to list_head
Converts the list and the core manipulating with it to be the same as uc_list. +uses two functions for adding/removing mc address (normal and "global" variant) instead of a function parameter. +removes dev_mcast.c completely. +exposes netdev_hw_addr_list_* macros along with __hw_addr_* functions for manipulation with lists on a sandbox (used in bonding and 80211 drivers) Signed-off-by: Jiri Pirko <jpirko@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
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 547912e6843..2277998b726 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);