Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0ddf477b authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller
Browse files

net: convert multiple drivers to use netdev_for_each_mc_addr, part3

parent 3b9a7728
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -595,9 +595,8 @@ static void lance_load_multicast (struct net_device *dev)
        struct lance_private *lp = netdev_priv(dev);
        volatile struct lance_init_block *ib = lp->init_block;
        volatile u16 *mcast_table = (u16 *)&ib->filter;
        struct dev_mc_list *dmi=dev->mc_list;
	struct dev_mc_list *dmi;
        char *addrs;
        int i;
        u32 crc;

        /* set all multicast bits */
@@ -611,9 +610,8 @@ static void lance_load_multicast (struct net_device *dev)
        ib->filter [1] = 0;

        /* Add addresses */
        for (i = 0; i < netdev_mc_count(dev); i++){
	netdev_for_each_mc_addr(dmi, dev) {
                addrs = dmi->dmi_addr;
                dmi   = dmi->next;

                /* multicast address? */
                if (!(*addrs & 1))
+6 −3
Original line number Diff line number Diff line
@@ -1550,13 +1550,16 @@ static void set_multicast_list(struct net_device *dev)
			return;
		cmd = &lp->mc_cmd;
		cmd->cmd.command = CmdMulticastList;
		cmd->mc_cnt = netdev_mc_count(dev) * 6;
		cmd->mc_cnt = cnt * ETH_ALEN;
		cp = cmd->mc_addrs;
		for (dmi = dev->mc_list; cnt && dmi != NULL; dmi = dmi->next, cnt--, cp += 6) {
			memcpy(cp, dmi->dmi_addr, 6);
		netdev_for_each_mc_addr(dmi, dev) {
			if (!cnt--)
				break;
			memcpy(cp, dmi->dmi_addr, ETH_ALEN);
			if (i596_debug > 1)
				DEB(DEB_MULTI,printk(KERN_INFO "%s: Adding address %pM\n",
						dev->name, cp));
			cp += ETH_ALEN;
		}
		i596_add_cmd(dev, &cmd->cmd);
	}
+2 −4
Original line number Diff line number Diff line
@@ -603,9 +603,8 @@ static void lance_load_multicast (struct net_device *dev)
	struct lance_private *lp = netdev_priv(dev);
	volatile struct lance_init_block *ib = lp->init_block;
	volatile u16 *mcast_table = (u16 *)&ib->filter;
	struct dev_mc_list *dmi=dev->mc_list;
	struct dev_mc_list *dmi;
	char *addrs;
	int i;
	u32 crc;

	/* set all multicast bits */
@@ -619,9 +618,8 @@ static void lance_load_multicast (struct net_device *dev)
	ib->filter [1] = 0;

	/* Add addresses */
	for (i = 0; i < netdev_mc_count(dev); i++){
	netdev_for_each_mc_addr(dmi, dev) {
		addrs = dmi->dmi_addr;
		dmi   = dmi->next;

		/* multicast address? */
		if (!(*addrs & 1))
+4 −7
Original line number Diff line number Diff line
@@ -1380,7 +1380,8 @@ static void amd8111e_set_multicast_list(struct net_device *dev)
	struct dev_mc_list *mc_ptr;
	struct amd8111e_priv *lp = netdev_priv(dev);
	u32 mc_filter[2] ;
	int i,bit_num;
	int bit_num;

	if(dev->flags & IFF_PROMISC){
		writel( VAL2 | PROM, lp->mmio + CMD2);
		return;
@@ -1391,7 +1392,6 @@ static void amd8111e_set_multicast_list(struct net_device *dev)
	    netdev_mc_count(dev) > MAX_FILTER_SIZE) {
		/* get all multicast packet */
		mc_filter[1] = mc_filter[0] = 0xffffffff;
		lp->mc_list = dev->mc_list;
		lp->options |= OPTION_MULTICAST_ENABLE;
		amd8111e_writeq(*(u64*)mc_filter,lp->mmio + LADRF);
		return;
@@ -1399,7 +1399,6 @@ static void amd8111e_set_multicast_list(struct net_device *dev)
	if (netdev_mc_empty(dev)) {
		/* get only own packets */
		mc_filter[1] = mc_filter[0] = 0;
		lp->mc_list = NULL;
		lp->options &= ~OPTION_MULTICAST_ENABLE;
		amd8111e_writeq(*(u64*)mc_filter,lp->mmio + LADRF);
		/* disable promiscous mode */
@@ -1408,10 +1407,8 @@ static void amd8111e_set_multicast_list(struct net_device *dev)
	}
	/* load all the multicast addresses in the logic filter */
	lp->options |= OPTION_MULTICAST_ENABLE;
	lp->mc_list = dev->mc_list;
	mc_filter[1] = mc_filter[0] = 0;
	for (i = 0, mc_ptr = dev->mc_list; mc_ptr && i < netdev_mc_count(dev);
		     i++, mc_ptr = mc_ptr->next) {
	netdev_for_each_mc_addr(mc_ptr, dev) {
		bit_num = (ether_crc_le(ETH_ALEN, mc_ptr->dmi_addr) >> 26) & 0x3f;
		mc_filter[bit_num >> 5] |= 1 << (bit_num & 31);
	}
+0 −1
Original line number Diff line number Diff line
@@ -789,7 +789,6 @@ struct amd8111e_priv{
	char opened;
	struct net_device_stats stats;
	unsigned int drv_rx_errors;
	struct dev_mc_list* mc_list;
	struct amd8111e_coalesce_conf coal_conf;

	struct ipg_info  ipg_data;
Loading