diff options
Diffstat (limited to 'drivers/net/hamachi.c')
-rw-r--r-- | drivers/net/hamachi.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/hamachi.c b/drivers/net/hamachi.c index c70b147b4feb..373546dd0831 100644 --- a/drivers/net/hamachi.c +++ b/drivers/net/hamachi.c | |||
@@ -1859,12 +1859,13 @@ static void set_rx_mode(struct net_device *dev) | |||
1859 | writew(0x000B, ioaddr + AddrMode); | 1859 | writew(0x000B, ioaddr + AddrMode); |
1860 | } else if (!netdev_mc_empty(dev)) { /* Must use the CAM filter. */ | 1860 | } else if (!netdev_mc_empty(dev)) { /* Must use the CAM filter. */ |
1861 | struct dev_mc_list *mclist; | 1861 | struct dev_mc_list *mclist; |
1862 | int i; | 1862 | int i = 0; |
1863 | for (i = 0, mclist = dev->mc_list; mclist && i < netdev_mc_count(dev); | 1863 | |
1864 | i++, mclist = mclist->next) { | 1864 | netdev_for_each_mc_addr(mclist, dev) { |
1865 | writel(*(u32*)(mclist->dmi_addr), ioaddr + 0x100 + i*8); | 1865 | writel(*(u32*)(mclist->dmi_addr), ioaddr + 0x100 + i*8); |
1866 | writel(0x20000 | (*(u16*)&mclist->dmi_addr[4]), | 1866 | writel(0x20000 | (*(u16*)&mclist->dmi_addr[4]), |
1867 | ioaddr + 0x104 + i*8); | 1867 | ioaddr + 0x104 + i*8); |
1868 | i++; | ||
1868 | } | 1869 | } |
1869 | /* Clear remaining entries. */ | 1870 | /* Clear remaining entries. */ |
1870 | for (; i < 64; i++) | 1871 | for (; i < 64; i++) |