diff mbox

ehea: Fix multicast registration on semi-promiscuous mode

Message ID 1306157795-13377-1-git-send-email-leitao@linux.vnet.ibm.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Breno Leitao May 23, 2011, 1:36 p.m. UTC
Ehea will not register multicast groups in phyp if the physical
interface is in promiscuous mode. But it should register if the
logical port is in promiscuous mode, but the physical port is not.

Ehea physical promiscuous mode is defined by ehea_port->promisc,
while logical port is defined by IFF_PROMISC.

So currently, if the user set the interface in promiscuous mode,
IGMP will not be registred in PHYP, and PHYP will never pass
the multicast packet to the logical port, which is bad

So, this patch just fixes it, assuring that we register in phyp
if the physical port is not on promiscuous mode.

Signed-off-by: Breno Leitao <leitao@linux.vnet.ibm.com>
---
 drivers/net/ehea/ehea_main.c |    2 +-
 drivers/tty/serial/8250.c    |    3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

Comments

David Miller May 23, 2011, 8:34 p.m. UTC | #1
From: leitao@linux.vnet.ibm.com
Date: Mon, 23 May 2011 10:36:35 -0300

> Ehea will not register multicast groups in phyp if the physical
> interface is in promiscuous mode. But it should register if the
> logical port is in promiscuous mode, but the physical port is not.
> 
> Ehea physical promiscuous mode is defined by ehea_port->promisc,
> while logical port is defined by IFF_PROMISC.
> 
> So currently, if the user set the interface in promiscuous mode,
> IGMP will not be registred in PHYP, and PHYP will never pass
> the multicast packet to the logical port, which is bad
> 
> So, this patch just fixes it, assuring that we register in phyp
> if the physical port is not on promiscuous mode.
> 
> Signed-off-by: Breno Leitao <leitao@linux.vnet.ibm.com>

Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index cf79cf7..80027be 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -2082,7 +2082,7 @@  static void ehea_set_multicast_list(struct net_device *dev)
 	struct netdev_hw_addr *ha;
 	int ret;
 
-	if (dev->flags & IFF_PROMISC) {
+	if (port->promisc) {
 		ehea_promiscuous(dev, 1);
 		return;
 	}