diff options
Diffstat (limited to 'drivers/net/wireless/libertas_tf/main.c')
-rw-r--r-- | drivers/net/wireless/libertas_tf/main.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/net/wireless/libertas_tf/main.c b/drivers/net/wireless/libertas_tf/main.c index 6ab30033c26c..c20eef6b95c2 100644 --- a/drivers/net/wireless/libertas_tf/main.c +++ b/drivers/net/wireless/libertas_tf/main.c | |||
@@ -367,22 +367,20 @@ static int lbtf_op_config(struct ieee80211_hw *hw, u32 changed) | |||
367 | } | 367 | } |
368 | 368 | ||
369 | static u64 lbtf_op_prepare_multicast(struct ieee80211_hw *hw, | 369 | static u64 lbtf_op_prepare_multicast(struct ieee80211_hw *hw, |
370 | int mc_count, struct dev_addr_list *mclist) | 370 | struct netdev_hw_addr_list *mc_list) |
371 | { | 371 | { |
372 | struct lbtf_private *priv = hw->priv; | 372 | struct lbtf_private *priv = hw->priv; |
373 | int i; | 373 | int i; |
374 | struct netdev_hw_addr *ha; | ||
375 | int mc_count = netdev_hw_addr_list_count(mc_list); | ||
374 | 376 | ||
375 | if (!mc_count || mc_count > MRVDRV_MAX_MULTICAST_LIST_SIZE) | 377 | if (!mc_count || mc_count > MRVDRV_MAX_MULTICAST_LIST_SIZE) |
376 | return mc_count; | 378 | return mc_count; |
377 | 379 | ||
378 | priv->nr_of_multicastmacaddr = mc_count; | 380 | priv->nr_of_multicastmacaddr = mc_count; |
379 | for (i = 0; i < mc_count; i++) { | 381 | i = 0; |
380 | if (!mclist) | 382 | netdev_hw_addr_list_for_each(ha, mc_list) |
381 | break; | 383 | memcpy(&priv->multicastlist[i++], ha->addr, ETH_ALEN); |
382 | memcpy(&priv->multicastlist[i], mclist->da_addr, | ||
383 | ETH_ALEN); | ||
384 | mclist = mclist->next; | ||
385 | } | ||
386 | 384 | ||
387 | return mc_count; | 385 | return mc_count; |
388 | } | 386 | } |