diff options
Diffstat (limited to 'drivers/net/3c505.c')
-rw-r--r-- | drivers/net/3c505.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/3c505.c b/drivers/net/3c505.c index dadb46a8833a..04b5bba19021 100644 --- a/drivers/net/3c505.c +++ b/drivers/net/3c505.c | |||
@@ -1216,7 +1216,7 @@ static int elp_close(struct net_device *dev) | |||
1216 | static void elp_set_mc_list(struct net_device *dev) | 1216 | static void elp_set_mc_list(struct net_device *dev) |
1217 | { | 1217 | { |
1218 | elp_device *adapter = netdev_priv(dev); | 1218 | elp_device *adapter = netdev_priv(dev); |
1219 | struct dev_mc_list *dmi = dev->mc_list; | 1219 | struct dev_mc_list *dmi; |
1220 | int i; | 1220 | int i; |
1221 | unsigned long flags; | 1221 | unsigned long flags; |
1222 | 1222 | ||
@@ -1230,10 +1230,9 @@ static void elp_set_mc_list(struct net_device *dev) | |||
1230 | /* if num_addrs==0 the list will be cleared */ | 1230 | /* if num_addrs==0 the list will be cleared */ |
1231 | adapter->tx_pcb.command = CMD_LOAD_MULTICAST_LIST; | 1231 | adapter->tx_pcb.command = CMD_LOAD_MULTICAST_LIST; |
1232 | adapter->tx_pcb.length = 6 * netdev_mc_count(dev); | 1232 | adapter->tx_pcb.length = 6 * netdev_mc_count(dev); |
1233 | for (i = 0; i < netdev_mc_count(dev); i++) { | 1233 | i = 0; |
1234 | memcpy(adapter->tx_pcb.data.multicast[i], dmi->dmi_addr, 6); | 1234 | netdev_for_each_mc_addr(dmi, dev) |
1235 | dmi = dmi->next; | 1235 | memcpy(adapter->tx_pcb.data.multicast[i++], dmi->dmi_addr, 6); |
1236 | } | ||
1237 | adapter->got[CMD_LOAD_MULTICAST_LIST] = 0; | 1236 | adapter->got[CMD_LOAD_MULTICAST_LIST] = 0; |
1238 | if (!send_pcb(dev, &adapter->tx_pcb)) | 1237 | if (!send_pcb(dev, &adapter->tx_pcb)) |
1239 | pr_err("%s: couldn't send set_multicast command\n", dev->name); | 1238 | pr_err("%s: couldn't send set_multicast command\n", dev->name); |