diff options
Diffstat (limited to 'drivers/net/e1000e/netdev.c')
-rw-r--r-- | drivers/net/e1000e/netdev.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index 5304959ae1f7..02f7d20f3c80 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c | |||
@@ -2567,7 +2567,7 @@ static void e1000_set_multi(struct net_device *netdev) | |||
2567 | { | 2567 | { |
2568 | struct e1000_adapter *adapter = netdev_priv(netdev); | 2568 | struct e1000_adapter *adapter = netdev_priv(netdev); |
2569 | struct e1000_hw *hw = &adapter->hw; | 2569 | struct e1000_hw *hw = &adapter->hw; |
2570 | struct dev_mc_list *mc_ptr; | 2570 | struct netdev_hw_addr *ha; |
2571 | u8 *mta_list; | 2571 | u8 *mta_list; |
2572 | u32 rctl; | 2572 | u32 rctl; |
2573 | int i; | 2573 | int i; |
@@ -2599,9 +2599,8 @@ static void e1000_set_multi(struct net_device *netdev) | |||
2599 | 2599 | ||
2600 | /* prepare a packed array of only addresses. */ | 2600 | /* prepare a packed array of only addresses. */ |
2601 | i = 0; | 2601 | i = 0; |
2602 | netdev_for_each_mc_addr(mc_ptr, netdev) | 2602 | netdev_for_each_mc_addr(ha, netdev) |
2603 | memcpy(mta_list + (i++ * ETH_ALEN), | 2603 | memcpy(mta_list + (i++ * ETH_ALEN), ha->addr, ETH_ALEN); |
2604 | mc_ptr->dmi_addr, ETH_ALEN); | ||
2605 | 2604 | ||
2606 | e1000_update_mc_addr_list(hw, mta_list, i); | 2605 | e1000_update_mc_addr_list(hw, mta_list, i); |
2607 | kfree(mta_list); | 2606 | kfree(mta_list); |