net: use netdev_mc_count and netdev_mc_empty when appropriate
[safe/jmp/linux-2.6] / drivers / net / r6040.c
index d68ba7a..b810342 100644 (file)
@@ -958,21 +958,22 @@ static void r6040_multicast_list(struct net_device *dev)
        }
        /* Too many multicast addresses
         * accept all traffic */
-       else if ((dev->mc_count > MCAST_MAX) || (dev->flags & IFF_ALLMULTI))
+       else if ((netdev_mc_count(dev) > MCAST_MAX) ||
+                (dev->flags & IFF_ALLMULTI))
                reg |= 0x0020;
 
        iowrite16(reg, ioaddr);
        spin_unlock_irqrestore(&lp->lock, flags);
 
        /* Build the hash table */
-       if (dev->mc_count > MCAST_MAX) {
+       if (netdev_mc_count(dev) > MCAST_MAX) {
                u16 hash_table[4];
                u32 crc;
 
                for (i = 0; i < 4; i++)
                        hash_table[i] = 0;
 
-               for (i = 0; i < dev->mc_count; i++) {
+               for (i = 0; i < netdev_mc_count(dev); i++) {
                        char *addrs = dmi->dmi_addr;
 
                        dmi = dmi->next;
@@ -994,14 +995,14 @@ static void r6040_multicast_list(struct net_device *dev)
                iowrite16(hash_table[3], ioaddr + MAR3);
        }
        /* Multicast Address 1~4 case */
-       for (i = 0, dmi; (i < dev->mc_count) && (i < MCAST_MAX); i++) {
+       for (i = 0, dmi; (i < netdev_mc_count(dev)) && (i < MCAST_MAX); i++) {
                adrp = (u16 *)dmi->dmi_addr;
                iowrite16(adrp[0], ioaddr + MID_1L + 8*i);
                iowrite16(adrp[1], ioaddr + MID_1M + 8*i);
                iowrite16(adrp[2], ioaddr + MID_1H + 8*i);
                dmi = dmi->next;
        }
-       for (i = dev->mc_count; i < MCAST_MAX; i++) {
+       for (i = netdev_mc_count(dev); i < MCAST_MAX; i++) {
                iowrite16(0xffff, ioaddr + MID_0L + 8*i);
                iowrite16(0xffff, ioaddr + MID_0M + 8*i);
                iowrite16(0xffff, ioaddr + MID_0H + 8*i);