Commit 59ce25d9 authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller

3c5xx: use netdev_mc_* helpers

Signed-off-by: default avatarJiri Pirko <jpirko@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bf473a26
...@@ -812,7 +812,7 @@ static void set_multicast_list(struct net_device *dev) ...@@ -812,7 +812,7 @@ static void set_multicast_list(struct net_device *dev)
if (dev->flags & IFF_PROMISC) { if (dev->flags & IFF_PROMISC) {
outb(RX_PROM, RX_CMD); outb(RX_PROM, RX_CMD);
inb(RX_STATUS); 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 */ /* Multicast or all multicast is the same */
outb(RX_MULT, RX_CMD); outb(RX_MULT, RX_CMD);
inb(RX_STATUS); /* Clear status. */ inb(RX_STATUS); /* Clear status. */
......
...@@ -1216,7 +1216,7 @@ static int elp_close(struct net_device *dev) ...@@ -1216,7 +1216,7 @@ static int elp_close(struct net_device *dev)
static void elp_set_mc_list(struct net_device *dev) static void elp_set_mc_list(struct net_device *dev)
{ {
elp_device *adapter = netdev_priv(dev); elp_device *adapter = netdev_priv(dev);
struct dev_mc_list *dmi = dev->mc_list; struct dev_mc_list *dmi;
int i; int i;
unsigned long flags; unsigned long flags;
...@@ -1230,10 +1230,9 @@ static void elp_set_mc_list(struct net_device *dev) ...@@ -1230,10 +1230,9 @@ static void elp_set_mc_list(struct net_device *dev)
/* if num_addrs==0 the list will be cleared */ /* if num_addrs==0 the list will be cleared */
adapter->tx_pcb.command = CMD_LOAD_MULTICAST_LIST; adapter->tx_pcb.command = CMD_LOAD_MULTICAST_LIST;
adapter->tx_pcb.length = 6 * netdev_mc_count(dev); adapter->tx_pcb.length = 6 * netdev_mc_count(dev);
for (i = 0; i < netdev_mc_count(dev); i++) { i = 0;
memcpy(adapter->tx_pcb.data.multicast[i], dmi->dmi_addr, 6); netdev_for_each_mc_addr(dmi, dev)
dmi = dmi->next; memcpy(adapter->tx_pcb.data.multicast[i++], dmi->dmi_addr, 6);
}
adapter->got[CMD_LOAD_MULTICAST_LIST] = 0; adapter->got[CMD_LOAD_MULTICAST_LIST] = 0;
if (!send_pcb(dev, &adapter->tx_pcb)) if (!send_pcb(dev, &adapter->tx_pcb))
pr_err("%s: couldn't send set_multicast command\n", dev->name); pr_err("%s: couldn't send set_multicast command\n", dev->name);
......
...@@ -1536,7 +1536,7 @@ static void set_rx_mode(struct net_device *dev) ...@@ -1536,7 +1536,7 @@ static void set_rx_mode(struct net_device *dev)
pr_debug("%s: Setting promiscuous mode.\n", pr_debug("%s: Setting promiscuous mode.\n",
dev->name); dev->name);
new_mode = SetRxFilter | RxStation | RxMulticast | RxBroadcast | RxProm; 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; new_mode = SetRxFilter | RxStation | RxMulticast | RxBroadcast;
} else } else
new_mode = SetRxFilter | RxStation | RxBroadcast; new_mode = SetRxFilter | RxStation | RxBroadcast;
......
...@@ -625,7 +625,7 @@ static int init586(struct net_device *dev) ...@@ -625,7 +625,7 @@ static int init586(struct net_device *dev)
volatile struct iasetup_cmd_struct *ias_cmd; volatile struct iasetup_cmd_struct *ias_cmd;
volatile struct tdr_cmd_struct *tdr_cmd; volatile struct tdr_cmd_struct *tdr_cmd;
volatile struct mcsetup_cmd_struct *mc_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); int num_addrs = netdev_mc_count(dev);
ptr = (void *) ((char *) p->scb + sizeof(struct scb_struct)); ptr = (void *) ((char *) p->scb + sizeof(struct scb_struct));
...@@ -787,10 +787,9 @@ static int init586(struct net_device *dev) ...@@ -787,10 +787,9 @@ static int init586(struct net_device *dev)
mc_cmd->cmd_cmd = CMD_MCSETUP | CMD_LAST; mc_cmd->cmd_cmd = CMD_MCSETUP | CMD_LAST;
mc_cmd->cmd_link = 0xffff; mc_cmd->cmd_link = 0xffff;
mc_cmd->mc_cnt = num_addrs * 6; mc_cmd->mc_cnt = num_addrs * 6;
for (i = 0; i < num_addrs; i++) { i = 0;
memcpy((char *) mc_cmd->mc_list[i], dmi->dmi_addr, 6); netdev_for_each_mc_addr(dmi, dev)
dmi = dmi->next; memcpy((char *) mc_cmd->mc_list[i++], dmi->dmi_addr, 6);
}
p->scb->cbl_offset = make16(mc_cmd); p->scb->cbl_offset = make16(mc_cmd);
p->scb->cmd = CUC_START; p->scb->cmd = CUC_START;
elmc_id_attn586(); elmc_id_attn586();
......
...@@ -1533,9 +1533,7 @@ static void do_mc32_set_multicast_list(struct net_device *dev, int retry) ...@@ -1533,9 +1533,7 @@ static void do_mc32_set_multicast_list(struct net_device *dev, int retry)
{ {
unsigned char block[62]; unsigned char block[62];
unsigned char *bp; unsigned char *bp;
struct dev_mc_list *dmc=dev->mc_list; struct dev_mc_list *dmc;
int i;
if(retry==0) if(retry==0)
lp->mc_list_valid = 0; lp->mc_list_valid = 0;
...@@ -1545,11 +1543,9 @@ static void do_mc32_set_multicast_list(struct net_device *dev, int retry) ...@@ -1545,11 +1543,9 @@ static void do_mc32_set_multicast_list(struct net_device *dev, int retry)
block[0]=netdev_mc_count(dev); block[0]=netdev_mc_count(dev);
bp=block+2; 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); memcpy(bp, dmc->dmi_addr, 6);
bp+=6; bp+=6;
dmc=dmc->next;
} }
if(mc32_command_nowait(dev, 2, block, if(mc32_command_nowait(dev, 2, block,
2+6*netdev_mc_count(dev))==-1) 2+6*netdev_mc_count(dev))==-1)
......
...@@ -2970,7 +2970,7 @@ static void set_rx_mode(struct net_device *dev) ...@@ -2970,7 +2970,7 @@ static void set_rx_mode(struct net_device *dev)
if (vortex_debug > 3) if (vortex_debug > 3)
pr_notice("%s: Setting promiscuous mode.\n", dev->name); pr_notice("%s: Setting promiscuous mode.\n", dev->name);
new_mode = SetRxFilter|RxStation|RxMulticast|RxBroadcast|RxProm; 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; new_mode = SetRxFilter|RxStation|RxMulticast|RxBroadcast;
} else } else
new_mode = SetRxFilter | RxStation | RxBroadcast; new_mode = SetRxFilter | RxStation | RxBroadcast;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment