net: use netdev_mc_count and netdev_mc_empty when appropriate
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / net / tulip / tulip_core.c
index e1a5f03a49c5850f7c79e0b4a60bc74b2d71a9c4..cce2ada079506d60ad42edec097919f4a18787de 100644 (file)
@@ -997,7 +997,7 @@ static void build_setup_frame_hash(u16 *setup_frm, struct net_device *dev)
        memset(hash_table, 0, sizeof(hash_table));
        set_bit_le(255, hash_table);                    /* Broadcast entry */
        /* This should work on big-endian machines as well. */
-       for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
+       for (i = 0, mclist = dev->mc_list; mclist && i < netdev_mc_count(dev);
             i++, mclist = mclist->next) {
                int index = ether_crc_le(ETH_ALEN, mclist->dmi_addr) & 0x1ff;
 
@@ -1026,7 +1026,7 @@ static void build_setup_frame_perfect(u16 *setup_frm, struct net_device *dev)
 
        /* We have <= 14 addresses so we can use the wonderful
           16 address perfect filtering of the Tulip. */
-       for (i = 0, mclist = dev->mc_list; i < dev->mc_count;
+       for (i = 0, mclist = dev->mc_list; i < netdev_mc_count(dev);
             i++, mclist = mclist->next) {
                eaddrs = (u16 *)mclist->dmi_addr;
                *setup_frm++ = *eaddrs; *setup_frm++ = *eaddrs++;
@@ -1057,7 +1057,8 @@ static void set_rx_mode(struct net_device *dev)
        if (dev->flags & IFF_PROMISC) {                 /* Set promiscuous. */
                tp->csr6 |= AcceptAllMulticast | AcceptAllPhys;
                csr6 |= AcceptAllMulticast | AcceptAllPhys;
-       } else if ((dev->mc_count > 1000)  ||  (dev->flags & IFF_ALLMULTI)) {
+       } else if ((netdev_mc_count(dev) > 1000) ||
+                  (dev->flags & IFF_ALLMULTI)) {
                /* Too many to filter well -- accept all multicasts. */
                tp->csr6 |= AcceptAllMulticast;
                csr6 |= AcceptAllMulticast;
@@ -1066,14 +1067,16 @@ static void set_rx_mode(struct net_device *dev)
                /* Should verify correctness on big-endian/__powerpc__ */
                struct dev_mc_list *mclist;
                int i;
-               if (dev->mc_count > 64) {               /* Arbitrary non-effective limit. */
+               if (netdev_mc_count(dev) > 64) {
+                       /* Arbitrary non-effective limit. */
                        tp->csr6 |= AcceptAllMulticast;
                        csr6 |= AcceptAllMulticast;
                } else {
                        u32 mc_filter[2] = {0, 0};               /* Multicast hash filter */
                        int filterbit;
-                       for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;
-                                i++, mclist = mclist->next) {
+                       for (i = 0, mclist = dev->mc_list;
+                            mclist && i < netdev_mc_count(dev);
+                            i++, mclist = mclist->next) {
                                if (tp->flags & COMET_MAC_ADDR)
                                        filterbit = ether_crc_le(ETH_ALEN, mclist->dmi_addr);
                                else
@@ -1107,7 +1110,8 @@ static void set_rx_mode(struct net_device *dev)
 
                /* Note that only the low-address shortword of setup_frame is valid!
                   The values are doubled for big-endian architectures. */
-               if (dev->mc_count > 14) { /* Must use a multicast hash table. */
+               if (netdev_mc_count(dev) > 14) {
+                       /* Must use a multicast hash table. */
                        build_setup_frame_hash(tp->setup_frame, dev);
                        tx_flags = 0x08400000 | 192;
                } else {