netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] net: arc_emac: annonce IFF_MULTICAST support
@ 2016-11-14 13:20 Alexander Kochetkov
  2016-11-14 13:20 ` [PATCH 2/2] net: arc_emac: don't pass multicast packets to kernel in non-multicast mode Alexander Kochetkov
  0 siblings, 1 reply; 4+ messages in thread
From: Alexander Kochetkov @ 2016-11-14 13:20 UTC (permalink / raw)
  To: netdev, linux-kernel, davem, tremyfr, peter.chen, wxt, weiyj.lk
  Cc: Alexander Kochetkov

Multicast support was implemented by commit 775dd682e2b0ec7
('arc_emac: implement promiscuous mode and multicast filtering').

It can be enabled explicity using 'ifconfig eth0 multicast'.
The patch is needed in order to remove explicit configuration
as most devices has multicast mode enabled by default.
---
 drivers/net/ethernet/arc/emac_main.c |    2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/net/ethernet/arc/emac_main.c b/drivers/net/ethernet/arc/emac_main.c
index b0da969..2e4ee86 100644
--- a/drivers/net/ethernet/arc/emac_main.c
+++ b/drivers/net/ethernet/arc/emac_main.c
@@ -764,8 +764,6 @@ int arc_emac_probe(struct net_device *ndev, int interface)
 	ndev->netdev_ops = &arc_emac_netdev_ops;
 	ndev->ethtool_ops = &arc_emac_ethtool_ops;
 	ndev->watchdog_timeo = TX_TIMEOUT;
-	/* FIXME :: no multicast support yet */
-	ndev->flags &= ~IFF_MULTICAST;
 
 	priv = netdev_priv(ndev);
 	priv->dev = dev;
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] net: arc_emac: don't pass multicast packets to kernel in non-multicast mode
  2016-11-14 13:20 [PATCH 1/2] net: arc_emac: annonce IFF_MULTICAST support Alexander Kochetkov
@ 2016-11-14 13:20 ` Alexander Kochetkov
  2016-11-14 13:32   ` [PATCHv2 1/2] net: arc_emac: annonce IFF_MULTICAST support Alexander Kochetkov
  0 siblings, 1 reply; 4+ messages in thread
From: Alexander Kochetkov @ 2016-11-14 13:20 UTC (permalink / raw)
  To: netdev, linux-kernel, davem, tremyfr, peter.chen, wxt, weiyj.lk
  Cc: Alexander Kochetkov

The patch disable capturing multicast packets when multicast mode
disabled for ethernet ('ifconfig eth0 -multicast'). In that case
no multicast packet will be passed to kernel.
---
 drivers/net/ethernet/arc/emac_main.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/arc/emac_main.c b/drivers/net/ethernet/arc/emac_main.c
index 2e4ee86..30ad833 100644
--- a/drivers/net/ethernet/arc/emac_main.c
+++ b/drivers/net/ethernet/arc/emac_main.c
@@ -460,7 +460,7 @@ static void arc_emac_set_rx_mode(struct net_device *ndev)
 		if (ndev->flags & IFF_ALLMULTI) {
 			arc_reg_set(priv, R_LAFL, ~0);
 			arc_reg_set(priv, R_LAFH, ~0);
-		} else {
+		} else if (ndev->flags & IFF_MULTICAST) {
 			struct netdev_hw_addr *ha;
 			unsigned int filter[2] = { 0, 0 };
 			int bit;
@@ -469,9 +469,11 @@ static void arc_emac_set_rx_mode(struct net_device *ndev)
 				bit = ether_crc_le(ETH_ALEN, ha->addr) >> 26;
 				filter[bit >> 5] |= 1 << (bit & 31);
 			}
-
 			arc_reg_set(priv, R_LAFL, filter[0]);
 			arc_reg_set(priv, R_LAFH, filter[1]);
+		} else {
+			arc_reg_set(priv, R_LAFL, 0);
+			arc_reg_set(priv, R_LAFH, 0);
 		}
 	}
 }
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCHv2 1/2] net: arc_emac: annonce IFF_MULTICAST support
  2016-11-14 13:20 ` [PATCH 2/2] net: arc_emac: don't pass multicast packets to kernel in non-multicast mode Alexander Kochetkov
@ 2016-11-14 13:32   ` Alexander Kochetkov
  2016-11-14 13:32     ` [PATCHv2 2/2] net: arc_emac: don't pass multicast packets to kernel in non-multicast mode Alexander Kochetkov
  0 siblings, 1 reply; 4+ messages in thread
From: Alexander Kochetkov @ 2016-11-14 13:32 UTC (permalink / raw)
  To: netdev, linux-kernel, davem, tremyfr, peter.chen, wxt, weiyj.lk
  Cc: Alexander Kochetkov

Multicast support was implemented by commit 775dd682e2b0ec7
('arc_emac: implement promiscuous mode and multicast filtering').

It can be enabled explicity using 'ifconfig eth0 multicast'.
The patch is needed in order to remove explicit configuration
as most devices has multicast mode enabled by default.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
---
Changes in v2:
Add Signed-off-by text.

 drivers/net/ethernet/arc/emac_main.c |    2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/net/ethernet/arc/emac_main.c b/drivers/net/ethernet/arc/emac_main.c
index b0da969..2e4ee86 100644
--- a/drivers/net/ethernet/arc/emac_main.c
+++ b/drivers/net/ethernet/arc/emac_main.c
@@ -764,8 +764,6 @@ int arc_emac_probe(struct net_device *ndev, int interface)
 	ndev->netdev_ops = &arc_emac_netdev_ops;
 	ndev->ethtool_ops = &arc_emac_ethtool_ops;
 	ndev->watchdog_timeo = TX_TIMEOUT;
-	/* FIXME :: no multicast support yet */
-	ndev->flags &= ~IFF_MULTICAST;
 
 	priv = netdev_priv(ndev);
 	priv->dev = dev;
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCHv2 2/2] net: arc_emac: don't pass multicast packets to kernel in non-multicast mode
  2016-11-14 13:32   ` [PATCHv2 1/2] net: arc_emac: annonce IFF_MULTICAST support Alexander Kochetkov
@ 2016-11-14 13:32     ` Alexander Kochetkov
  0 siblings, 0 replies; 4+ messages in thread
From: Alexander Kochetkov @ 2016-11-14 13:32 UTC (permalink / raw)
  To: netdev, linux-kernel, davem, tremyfr, peter.chen, wxt, weiyj.lk
  Cc: Alexander Kochetkov

The patch disable capturing multicast packets when multicast mode
disabled for ethernet ('ifconfig eth0 -multicast'). In that case
no multicast packet will be passed to kernel.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
---
Changes in v2:
Add Signed-off-by text.
Removed deleted line from patch.

 drivers/net/ethernet/arc/emac_main.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/arc/emac_main.c b/drivers/net/ethernet/arc/emac_main.c
index 2e4ee86..be865b4 100644
--- a/drivers/net/ethernet/arc/emac_main.c
+++ b/drivers/net/ethernet/arc/emac_main.c
@@ -460,7 +460,7 @@ static void arc_emac_set_rx_mode(struct net_device *ndev)
 		if (ndev->flags & IFF_ALLMULTI) {
 			arc_reg_set(priv, R_LAFL, ~0);
 			arc_reg_set(priv, R_LAFH, ~0);
-		} else {
+		} else if (ndev->flags & IFF_MULTICAST) {
 			struct netdev_hw_addr *ha;
 			unsigned int filter[2] = { 0, 0 };
 			int bit;
@@ -472,6 +472,9 @@ static void arc_emac_set_rx_mode(struct net_device *ndev)
 
 			arc_reg_set(priv, R_LAFL, filter[0]);
 			arc_reg_set(priv, R_LAFH, filter[1]);
+		} else {
+			arc_reg_set(priv, R_LAFL, 0);
+			arc_reg_set(priv, R_LAFH, 0);
 		}
 	}
 }
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-11-14 13:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-14 13:20 [PATCH 1/2] net: arc_emac: annonce IFF_MULTICAST support Alexander Kochetkov
2016-11-14 13:20 ` [PATCH 2/2] net: arc_emac: don't pass multicast packets to kernel in non-multicast mode Alexander Kochetkov
2016-11-14 13:32   ` [PATCHv2 1/2] net: arc_emac: annonce IFF_MULTICAST support Alexander Kochetkov
2016-11-14 13:32     ` [PATCHv2 2/2] net: arc_emac: don't pass multicast packets to kernel in non-multicast mode Alexander Kochetkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).