3c5xx: use netdev_mc_* helpers
authorJiri Pirko <jpirko@redhat.com>
Wed, 17 Feb 2010 23:12:15 +0000 (23:12 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 Feb 2010 22:47:48 +0000 (14:47 -0800)
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/3c501.c
drivers/net/3c505.c
drivers/net/3c515.c
drivers/net/3c523.c
drivers/net/3c527.c
drivers/net/3c59x.c

index 4d4cad393dce36f0321c5764eee6ea8c6246230b..b6de7b1e2a5cbaeff1ae9caf47b13836e4f63244 100644 (file)
@@ -812,7 +812,7 @@ static void set_multicast_list(struct net_device *dev)
        if (dev->flags & IFF_PROMISC) {
                outb(RX_PROM, RX_CMD);
                inb(RX_STATUS);
-       } else if (dev->mc_list || dev->flags & IFF_ALLMULTI) {
+       } else if (!netdev_mc_empty(dev) || dev->flags & IFF_ALLMULTI) {
                /* Multicast or all multicast is the same */
                outb(RX_MULT, RX_CMD);
                inb(RX_STATUS);         /* Clear status. */
index dadb46a8833a50049003f0092fa6577e0895f249..04b5bba19021c8c93f340b0aa814dc93e3305a60 100644 (file)
@@ -1216,7 +1216,7 @@ static int elp_close(struct net_device *dev)
 static void elp_set_mc_list(struct net_device *dev)
 {
        elp_device *adapter = netdev_priv(dev);
-       struct dev_mc_list *dmi = dev->mc_list;
+       struct dev_mc_list *dmi;
        int i;
        unsigned long flags;
 
@@ -1230,10 +1230,9 @@ static void elp_set_mc_list(struct net_device *dev)
                /* if num_addrs==0 the list will be cleared */
                adapter->tx_pcb.command = CMD_LOAD_MULTICAST_LIST;
                adapter->tx_pcb.length = 6 * netdev_mc_count(dev);
-               for (i = 0; i < netdev_mc_count(dev); i++) {
-                       memcpy(adapter->tx_pcb.data.multicast[i], dmi->dmi_addr, 6);
-                       dmi = dmi->next;
-               }
+               i = 0;
+               netdev_for_each_mc_addr(dmi, dev)
+                       memcpy(adapter->tx_pcb.data.multicast[i++], dmi->dmi_addr, 6);
                adapter->got[CMD_LOAD_MULTICAST_LIST] = 0;
                if (!send_pcb(dev, &adapter->tx_pcb))
                        pr_err("%s: couldn't send set_multicast command\n", dev->name);
index 063b049ffe558f1c787b6344a62df500dc308f82..1e898b1c80682ab190434b3f02cb82dca55332d6 100644 (file)
@@ -1536,7 +1536,7 @@ static void set_rx_mode(struct net_device *dev)
                        pr_debug("%s: Setting promiscuous mode.\n",
                               dev->name);
                new_mode = SetRxFilter | RxStation | RxMulticast | RxBroadcast | RxProm;
-       } else if ((dev->mc_list) || (dev->flags & IFF_ALLMULTI)) {
+       } else if (!netdev_mc_empty(dev) || dev->flags & IFF_ALLMULTI) {
                new_mode = SetRxFilter | RxStation | RxMulticast | RxBroadcast;
        } else
                new_mode = SetRxFilter | RxStation | RxBroadcast;
index 6948d667fc5ef6cab02e381500c6ccbe2adb2540..beed4fa10c6e69662057c83ee5d55912f50c1782 100644 (file)
@@ -625,7 +625,7 @@ static int init586(struct net_device *dev)
        volatile struct iasetup_cmd_struct *ias_cmd;
        volatile struct tdr_cmd_struct *tdr_cmd;
        volatile struct mcsetup_cmd_struct *mc_cmd;
-       struct dev_mc_list *dmi = dev->mc_list;
+       struct dev_mc_list *dmi;
        int num_addrs = netdev_mc_count(dev);
 
        ptr = (void *) ((char *) p->scb + sizeof(struct scb_struct));
@@ -787,10 +787,9 @@ static int init586(struct net_device *dev)
                        mc_cmd->cmd_cmd = CMD_MCSETUP | CMD_LAST;
                        mc_cmd->cmd_link = 0xffff;
                        mc_cmd->mc_cnt = num_addrs * 6;
-                       for (i = 0; i < num_addrs; i++) {
-                               memcpy((char *) mc_cmd->mc_list[i], dmi->dmi_addr, 6);
-                               dmi = dmi->next;
-                       }
+                       i = 0;
+                       netdev_for_each_mc_addr(dmi, dev)
+                               memcpy((char *) mc_cmd->mc_list[i++], dmi->dmi_addr, 6);
                        p->scb->cbl_offset = make16(mc_cmd);
                        p->scb->cmd = CUC_START;
                        elmc_id_attn586();
index ce98269805171c1ea73e277af563630425a481ad..5c07b147ec99bf9d11acf61c689a075c81691c83 100644 (file)
@@ -1533,9 +1533,7 @@ static void do_mc32_set_multicast_list(struct net_device *dev, int retry)
        {
                unsigned char block[62];
                unsigned char *bp;
-               struct dev_mc_list *dmc=dev->mc_list;
-
-               int i;
+               struct dev_mc_list *dmc;
 
                if(retry==0)
                        lp->mc_list_valid = 0;
@@ -1545,11 +1543,9 @@ static void do_mc32_set_multicast_list(struct net_device *dev, int retry)
                        block[0]=netdev_mc_count(dev);
                        bp=block+2;
 
-                       for(i=0;i<netdev_mc_count(dev);i++)
-                       {
+                       netdev_for_each_mc_addr(dmc, dev) {
                                memcpy(bp, dmc->dmi_addr, 6);
                                bp+=6;
-                               dmc=dmc->next;
                        }
                        if(mc32_command_nowait(dev, 2, block,
                                               2+6*netdev_mc_count(dev))==-1)
index 5df46c230b073c437a493fa37e4842c1e56e9d74..f965431f4924f16b6599cb52e8c504460651a7df 100644 (file)
@@ -2970,7 +2970,7 @@ static void set_rx_mode(struct net_device *dev)
                if (vortex_debug > 3)
                        pr_notice("%s: Setting promiscuous mode.\n", dev->name);
                new_mode = SetRxFilter|RxStation|RxMulticast|RxBroadcast|RxProm;
-       } else  if ((dev->mc_list)  ||  (dev->flags & IFF_ALLMULTI)) {
+       } else  if (!netdev_mc_empty(dev) || dev->flags & IFF_ALLMULTI) {
                new_mode = SetRxFilter|RxStation|RxMulticast|RxBroadcast;
        } else
                new_mode = SetRxFilter | RxStation | RxBroadcast;