From: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Subject: ehea: fix promiscuous mode
Git-commit: 47d59d01322f60d1c46fdf2650e0613daa8ce637
Patch-mainline: yes
References: bnc#757289
    
    commit a4910b744486254cfa61995954c118fb2283c4fd has broken promiscuous
    mode, which is never set. port->promisc just reflects the last setting
    of PROMISCUOUS mode to avoid doing an extra hypercall when it's already
    set.
    
    However, since it may fail because of hypervisor permissions, we should
    still respect the multicast settings and not simply exit after setting
    promiscuous mode.
    
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Cc: Breno Leitao <leitao@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: Torsten Duwe <duwe@suse.de>

 drivers/net/ehea/ehea_main.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 9dcb5fd..c9069a2 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -1946,11 +1946,7 @@ static void ehea_set_multicast_list(struct net_device *dev)
 	struct netdev_hw_addr *ha;
 	int ret;
 
-	if (port->promisc) {
-		ehea_promiscuous(dev, 1);
-		return;
-	}
-	ehea_promiscuous(dev, 0);
+	ehea_promiscuous(dev, !!(dev->flags & IFF_PROMISC));
 
 	if (dev->flags & IFF_ALLMULTI) {
 		ehea_allmulti(dev, 1);
