]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/at1700.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6
[karo-tx-linux.git] / drivers / net / at1700.c
index b14f4799d5d1b705f48be25352c4055bd33bf548..309843ab886925e7a1a1fe3b745d86de01824bd2 100644 (file)
@@ -839,21 +839,19 @@ 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;
-               int i;
 
                memset(mc_filter, 0, sizeof(mc_filter));
-               for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
-                        i++, mclist = mclist->next) {
+               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);