summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx4/en_main.c
diff options
context:
space:
mode:
authorIdo Shamay2015-04-02 15:31:07 +0200
committerDavid S. Miller2015-04-02 22:24:51 +0200
commit241a08c3a767ca2f6ab1c99c4db4c3ff867de8aa (patch)
treeb2b8e83c8e11a80fbe9edb954becf374ebf38af5 /drivers/net/ethernet/mellanox/mlx4/en_main.c
parentnet/mlx4: Add RSS support for fragmented IP datagrams (diff)
downloadkernel-qcow2-linux-241a08c3a767ca2f6ab1c99c4db4c3ff867de8aa.tar.gz
kernel-qcow2-linux-241a08c3a767ca2f6ab1c99c4db4c3ff867de8aa.tar.xz
kernel-qcow2-linux-241a08c3a767ca2f6ab1c99c4db4c3ff867de8aa.zip
net/mlx4_en: Change loopback only upon feature change
Currently any change of netdev features results in a call to mlx4_en_update_loopback_state(). Those calls are unnecessary, and should be called only upon loopback feature change. Also moved some of the logic into mlx4_en_update_loopback_state(). Signed-off-by: Ido Shamay <idos@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx4/en_main.c')
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_main.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_main.c b/drivers/net/ethernet/mellanox/mlx4/en_main.c
index 58d5a07d0ff4..913b716ed2e1 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_main.c
@@ -103,6 +103,11 @@ void mlx4_en_update_loopback_state(struct net_device *dev,
{
struct mlx4_en_priv *priv = netdev_priv(dev);
+ if (features & NETIF_F_LOOPBACK)
+ priv->ctrl_flags |= cpu_to_be32(MLX4_WQE_CTRL_FORCE_LOOPBACK);
+ else
+ priv->ctrl_flags &= cpu_to_be32(~MLX4_WQE_CTRL_FORCE_LOOPBACK);
+
priv->flags &= ~(MLX4_EN_FLAG_RX_FILTER_NEEDED|
MLX4_EN_FLAG_ENABLE_HW_LOOPBACK);