]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/net/usb/mcs7830.c
net: convert multicast list to list_head
[mirror_ubuntu-artful-kernel.git] / drivers / net / usb / mcs7830.c
index 6fc098fe9ff756558e68dfcc5114285e0af066df..0dc92c8ba4b2253acc525906014d44b2dea88315 100644 (file)
@@ -443,24 +443,22 @@ static void mcs7830_data_set_multicast(struct net_device *net)
        if (net->flags & IFF_PROMISC) {
                data->config |= HIF_REG_CONFIG_PROMISCUOUS;
        } else if (net->flags & IFF_ALLMULTI ||
-                  net->mc_count > MCS7830_MAX_MCAST) {
+                  netdev_mc_count(net) > MCS7830_MAX_MCAST) {
                data->config |= HIF_REG_CONFIG_ALLMULTICAST;
-       } else if (net->mc_count == 0) {
+       } else if (netdev_mc_empty(net)) {
                /* just broadcast and directed */
        } else {
                /* We use the 20 byte dev->data
                 * for our 8 byte filter buffer
                 * to avoid allocating memory that
                 * is tricky to free later */
-               struct dev_mc_list *mc_list = net->mc_list;
+               struct netdev_hw_addr *ha;
                u32 crc_bits;
-               int i;
 
                /* Build the multicast hash filter. */
-               for (i = 0; i < net->mc_count; i++) {
-                       crc_bits = ether_crc(ETH_ALEN, mc_list->dmi_addr) >> 26;
+               netdev_for_each_mc_addr(ha, net) {
+                       crc_bits = ether_crc(ETH_ALEN, ha->addr) >> 26;
                        data->multi_filter[crc_bits >> 3] |= 1 << (crc_bits & 7);
-                       mc_list = mc_list->next;
                }
        }
 }