summaryrefslogtreecommitdiffstats
path: root/drivers/net/mlx4
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2011-03-27 03:01:26 +0200
committerDavid S. Miller <davem@davemloft.net>2011-03-28 08:35:06 +0200
commitb5845f9834d8f4c79d324bc59b99dbcf0a40f428 (patch)
tree40f10df37db8b265cce4524dbe616688cbb701ee /drivers/net/mlx4
parenttg3: Fix inline keyword usage (diff)
downloadlinux-b5845f9834d8f4c79d324bc59b99dbcf0a40f428.tar.xz
linux-b5845f9834d8f4c79d324bc59b99dbcf0a40f428.zip
mlx4_en: Fix loss of promiscuity
The mlx4_en driver uses the combination stop_port/start_port in a number of places. Unfortunately that causes any promiscuous mode settings on the hardware to be lost. This patch fixes that problem. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/mlx4')
-rw-r--r--drivers/net/mlx4/en_netdev.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/mlx4/en_netdev.c b/drivers/net/mlx4/en_netdev.c
index 5762ebde4455..4f158baa0246 100644
--- a/drivers/net/mlx4/en_netdev.c
+++ b/drivers/net/mlx4/en_netdev.c
@@ -742,6 +742,9 @@ int mlx4_en_start_port(struct net_device *dev)
0, MLX4_PROT_ETH))
mlx4_warn(mdev, "Failed Attaching Broadcast\n");
+ /* Must redo promiscuous mode setup. */
+ priv->flags &= ~(MLX4_EN_FLAG_PROMISC | MLX4_EN_FLAG_MC_PROMISC);
+
/* Schedule multicast task to populate multicast list */
queue_work(mdev->workqueue, &priv->mcast_task);