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

Commit 5508590c 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, part2

parent 2a0d18f9
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -5092,8 +5092,8 @@ static void s2io_set_multicast(struct net_device *dev)
		}

		/* Create the new Rx filter list and update the same in H/W. */
		for (i = 0, mclist = dev->mc_list; i < netdev_mc_count(dev);
		     i++, mclist = mclist->next) {
		i = 0;
		netdev_for_each_mc_addr(mclist, dev) {
			memcpy(sp->usr_addrs[i].addr, mclist->dmi_addr,
			       ETH_ALEN);
			mac_addr = 0;
@@ -5121,6 +5121,7 @@ static void s2io_set_multicast(struct net_device *dev)
					  dev->name);
				return;
			}
			i++;
		}
	}
}
+3 −3
Original line number Diff line number Diff line
@@ -2161,13 +2161,13 @@ static void sbmac_setmulti(struct sbmac_softc *sc)
	 * XXX if the table overflows */

	idx = 1;		/* skip station address */
	mclist = dev->mc_list;
	while (mclist && (idx < MAC_ADDR_COUNT)) {
	netdev_for_each_mc_addr(mclist, dev) {
		if (idx == MAC_ADDR_COUNT)
			break;
		reg = sbmac_addr2reg(mclist->dmi_addr);
		port = sc->sbm_base + R_MAC_ADDR_BASE+(idx * sizeof(uint64_t));
		__raw_writeq(reg, port);
		idx++;
		mclist = mclist->next;
	}

	/*
+1 −1
Original line number Diff line number Diff line
@@ -435,7 +435,7 @@ static void _sc92031_set_mar(struct net_device *dev)
	else if (dev->flags & IFF_MULTICAST) {
		struct dev_mc_list *mc_list;

		for (mc_list = dev->mc_list; mc_list; mc_list = mc_list->next) {
		netdev_for_each_mc_addr(mc_list, dev) {
			u32 crc;
			unsigned bit = 0;

+2 −4
Original line number Diff line number Diff line
@@ -1602,11 +1602,10 @@ static int efx_set_mac_address(struct net_device *net_dev, void *data)
static void efx_set_multicast_list(struct net_device *net_dev)
{
	struct efx_nic *efx = netdev_priv(net_dev);
	struct dev_mc_list *mc_list = net_dev->mc_list;
	struct dev_mc_list *mc_list;
	union efx_multicast_hash *mc_hash = &efx->multicast_hash;
	u32 crc;
	int bit;
	int i;

	efx->promiscuous = !!(net_dev->flags & IFF_PROMISC);

@@ -1615,11 +1614,10 @@ static void efx_set_multicast_list(struct net_device *net_dev)
		memset(mc_hash, 0xff, sizeof(*mc_hash));
	} else {
		memset(mc_hash, 0x00, sizeof(*mc_hash));
		for (i = 0; i < netdev_mc_count(net_dev); i++) {
		netdev_for_each_mc_addr(mc_list, net_dev) {
			crc = ether_crc_le(ETH_ALEN, mc_list->dmi_addr);
			bit = crc & (EFX_MCAST_HASH_ENTRIES - 1);
			set_bit_le(bit, mc_hash->byte);
			mc_list = mc_list->next;
		}

		/* Broadcast packets go through the multicast hash filter.
+1 −3
Original line number Diff line number Diff line
@@ -849,12 +849,10 @@ static void sis190_set_rx_mode(struct net_device *dev)
		mc_filter[1] = mc_filter[0] = 0xffffffff;
	} else {
		struct dev_mc_list *mclist;
		unsigned int i;

		rx_mode = AcceptBroadcast | AcceptMyPhys;
		mc_filter[1] = mc_filter[0] = 0;
		for (i = 0, mclist = dev->mc_list; mclist && i < netdev_mc_count(dev);
		     i++, mclist = mclist->next) {
		netdev_for_each_mc_addr(mclist, dev) {
			int bit_nr =
				ether_crc(ETH_ALEN, mclist->dmi_addr) & 0x3f;
			mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31);
Loading