diff options
Diffstat (limited to 'drivers/net/wireless/zd1201.c')
-rw-r--r-- | drivers/net/wireless/zd1201.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/wireless/zd1201.c b/drivers/net/wireless/zd1201.c index 5d2b52f4717..6917286edca 100644 --- a/drivers/net/wireless/zd1201.c +++ b/drivers/net/wireless/zd1201.c | |||
@@ -875,17 +875,16 @@ static struct iw_statistics *zd1201_get_wireless_stats(struct net_device *dev) | |||
875 | static void zd1201_set_multicast(struct net_device *dev) | 875 | static void zd1201_set_multicast(struct net_device *dev) |
876 | { | 876 | { |
877 | struct zd1201 *zd = netdev_priv(dev); | 877 | struct zd1201 *zd = netdev_priv(dev); |
878 | struct dev_mc_list *mc = dev->mc_list; | 878 | struct dev_mc_list *mc; |
879 | unsigned char reqbuf[ETH_ALEN*ZD1201_MAXMULTI]; | 879 | unsigned char reqbuf[ETH_ALEN*ZD1201_MAXMULTI]; |
880 | int i; | 880 | int i; |
881 | 881 | ||
882 | if (netdev_mc_count(dev) > ZD1201_MAXMULTI) | 882 | if (netdev_mc_count(dev) > ZD1201_MAXMULTI) |
883 | return; | 883 | return; |
884 | 884 | ||
885 | for (i=0; i<netdev_mc_count(dev); i++) { | 885 | i = 0; |
886 | memcpy(reqbuf+i*ETH_ALEN, mc->dmi_addr, ETH_ALEN); | 886 | netdev_for_each_mc_addr(mc, dev) |
887 | mc = mc->next; | 887 | memcpy(reqbuf + i++ * ETH_ALEN, mc->dmi_addr, ETH_ALEN); |
888 | } | ||
889 | zd1201_setconfig(zd, ZD1201_RID_CNFGROUPADDRESS, reqbuf, | 888 | zd1201_setconfig(zd, ZD1201_RID_CNFGROUPADDRESS, reqbuf, |
890 | netdev_mc_count(dev) * ETH_ALEN, 0); | 889 | netdev_mc_count(dev) * ETH_ALEN, 0); |
891 | } | 890 | } |