net/pcmcia: convert to use netdev_for_each_mc_addr
[deliverable/linux.git] / drivers / net / pcmcia / fmvj18x_cs.c
index 7b17404d085805ec1cccdd631d21b596fe56f622..b9dc80b9d04a31168dd11f053ae1952a974353ee 100644 (file)
@@ -1187,22 +1187,20 @@ static void set_rx_mode(struct net_device *dev)
     if (dev->flags & IFF_PROMISC) {
        memset(mc_filter, 0xff, sizeof(mc_filter));
        outb(3, ioaddr + RX_MODE);      /* Enable promiscuous mode */
-    } else if (dev->mc_count > MC_FILTERBREAK ||
+    } else if (netdev_mc_count(dev) > MC_FILTERBREAK ||
               (dev->flags & IFF_ALLMULTI)) {
        /* Too many to filter perfectly -- accept all multicasts. */
        memset(mc_filter, 0xff, sizeof(mc_filter));
        outb(2, ioaddr + RX_MODE);      /* Use normal mode. */
-    } else if (dev->mc_count == 0) {
+    } else if (netdev_mc_empty(dev)) {
        memset(mc_filter, 0x00, sizeof(mc_filter));
        outb(1, ioaddr + RX_MODE);      /* Ignore almost all multicasts. */
     } else {
        struct dev_mc_list *mclist;
 
        memset(mc_filter, 0, sizeof(mc_filter));
-       for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
-            i++, mclist = mclist->next) {
-           unsigned int bit =
-               ether_crc_le(ETH_ALEN, mclist->dmi_addr) >> 26;
+       netdev_for_each_mc_addr(mclist, dev) {
+           unsigned int bit = ether_crc_le(ETH_ALEN, mclist->dmi_addr) >> 26;
            mc_filter[bit >> 3] |= (1 << (bit & 7));
        }
        outb(2, ioaddr + RX_MODE);      /* Use normal mode. */
This page took 0.135417 seconds and 5 git commands to generate.