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

Commit f9dcbcc9 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, part5 V2



removed some needless checks and also corrected bug in lp486e (dmi was passed
instead of dmi->dmi_addr)

Signed-off-by: default avatarJiri Pirko <jpirko@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 52c793f2
Loading
Loading
Loading
Loading
+1 −5
Original line number Original line Diff line number Diff line
@@ -1997,7 +1997,6 @@ jme_set_multi(struct net_device *netdev)
{
{
	struct jme_adapter *jme = netdev_priv(netdev);
	struct jme_adapter *jme = netdev_priv(netdev);
	u32 mc_hash[2] = {};
	u32 mc_hash[2] = {};
	int i;


	spin_lock_bh(&jme->rxmcs_lock);
	spin_lock_bh(&jme->rxmcs_lock);


@@ -2012,10 +2011,7 @@ jme_set_multi(struct net_device *netdev)
		int bit_nr;
		int bit_nr;


		jme->reg_rxmcs |= RXMCS_MULFRAME | RXMCS_MULFILTERED;
		jme->reg_rxmcs |= RXMCS_MULFRAME | RXMCS_MULFILTERED;
		for (i = 0, mclist = netdev->mc_list;
		netdev_for_each_mc_addr(mclist, netdev) {
			mclist && i < netdev_mc_count(netdev);
			++i, mclist = mclist->next) {

			bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) & 0x3F;
			bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) & 0x3F;
			mc_hash[bit_nr >> 5] |= 1 << (bit_nr & 0x1F);
			mc_hash[bit_nr >> 5] |= 1 << (bit_nr & 0x1F);
		}
		}
+2 −4
Original line number Original line Diff line number Diff line
@@ -482,7 +482,7 @@ static void korina_multicast_list(struct net_device *dev)
{
{
	struct korina_private *lp = netdev_priv(dev);
	struct korina_private *lp = netdev_priv(dev);
	unsigned long flags;
	unsigned long flags;
	struct dev_mc_list *dmi = dev->mc_list;
	struct dev_mc_list *dmi;
	u32 recognise = ETH_ARC_AB;	/* always accept broadcasts */
	u32 recognise = ETH_ARC_AB;	/* always accept broadcasts */
	int i;
	int i;


@@ -502,11 +502,9 @@ static void korina_multicast_list(struct net_device *dev)
		for (i = 0; i < 4; i++)
		for (i = 0; i < 4; i++)
			hash_table[i] = 0;
			hash_table[i] = 0;


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


			dmi = dmi->next;

			if (!(*addrs & 1))
			if (!(*addrs & 1))
				continue;
				continue;


+2 −3
Original line number Original line Diff line number Diff line
@@ -966,13 +966,12 @@ static void ks8851_set_rx_mode(struct net_device *dev)
		rxctrl.rxcr1 = (RXCR1_RXME | RXCR1_RXAE |
		rxctrl.rxcr1 = (RXCR1_RXME | RXCR1_RXAE |
				RXCR1_RXPAFMA | RXCR1_RXMAFMA);
				RXCR1_RXPAFMA | RXCR1_RXMAFMA);
	} else if (dev->flags & IFF_MULTICAST && !netdev_mc_empty(dev)) {
	} else if (dev->flags & IFF_MULTICAST && !netdev_mc_empty(dev)) {
		struct dev_mc_list *mcptr = dev->mc_list;
		struct dev_mc_list *mcptr;
		u32 crc;
		u32 crc;
		int i;


		/* accept some multicast */
		/* accept some multicast */


		for (i = netdev_mc_count(dev); i > 0; i--) {
		netdev_for_each_mc_addr(mcptr, dev) {
			crc = ether_crc(ETH_ALEN, mcptr->dmi_addr);
			crc = ether_crc(ETH_ALEN, mcptr->dmi_addr);
			crc >>= (32 - 6);  /* get top six bits */
			crc >>= (32 - 6);  /* get top six bits */


+2 −1
Original line number Original line Diff line number Diff line
@@ -1196,7 +1196,8 @@ static void ks_set_rx_mode(struct net_device *netdev)
	if ((netdev->flags & IFF_MULTICAST) && netdev_mc_count(netdev)) {
	if ((netdev->flags & IFF_MULTICAST) && netdev_mc_count(netdev)) {
		if (netdev_mc_count(netdev) <= MAX_MCAST_LST) {
		if (netdev_mc_count(netdev) <= MAX_MCAST_LST) {
			int i = 0;
			int i = 0;
			for (ptr = netdev->mc_list; ptr; ptr = ptr->next) {

			netdev_for_each_mc_addr(ptr, netdev) {
				if (!(*ptr->dmi_addr & 1))
				if (!(*ptr->dmi_addr & 1))
					continue;
					continue;
				if (i >= MAX_MCAST_LST)
				if (i >= MAX_MCAST_LST)
+2 −2
Original line number Original line Diff line number Diff line
@@ -5777,7 +5777,7 @@ static void netdev_set_rx_mode(struct net_device *dev)
	if (hw_priv->hw.dev_count > 1)
	if (hw_priv->hw.dev_count > 1)
		return;
		return;


	if ((dev->flags & IFF_MULTICAST) && dev->mc_count) {
	if ((dev->flags & IFF_MULTICAST) && !netdev_mc_empty(dev)) {
		int i = 0;
		int i = 0;


		/* List too big to support so turn on all multicast mode. */
		/* List too big to support so turn on all multicast mode. */
@@ -5790,7 +5790,7 @@ static void netdev_set_rx_mode(struct net_device *dev)
			return;
			return;
		}
		}


		for (mc_ptr = dev->mc_list; mc_ptr; mc_ptr = mc_ptr->next) {
		netdev_for_each_mc_addr(mc_ptr, dev) {
			if (!(*mc_ptr->dmi_addr & 1))
			if (!(*mc_ptr->dmi_addr & 1))
				continue;
				continue;
			if (i >= MAX_MULTICAST_LIST)
			if (i >= MAX_MULTICAST_LIST)
Loading