提交 241a08c3 编写于 作者: I Ido Shamay 提交者: David S. Miller

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: NIdo Shamay <idos@mellanox.com>
Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 802f42a8
...@@ -103,6 +103,11 @@ void mlx4_en_update_loopback_state(struct net_device *dev, ...@@ -103,6 +103,11 @@ void mlx4_en_update_loopback_state(struct net_device *dev,
{ {
struct mlx4_en_priv *priv = netdev_priv(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| priv->flags &= ~(MLX4_EN_FLAG_RX_FILTER_NEEDED|
MLX4_EN_FLAG_ENABLE_HW_LOOPBACK); MLX4_EN_FLAG_ENABLE_HW_LOOPBACK);
......
...@@ -2210,13 +2210,11 @@ static int mlx4_en_set_features(struct net_device *netdev, ...@@ -2210,13 +2210,11 @@ static int mlx4_en_set_features(struct net_device *netdev,
en_info(priv, "Turn %s TX vlan strip offload\n", en_info(priv, "Turn %s TX vlan strip offload\n",
(features & NETIF_F_HW_VLAN_CTAG_TX) ? "ON" : "OFF"); (features & NETIF_F_HW_VLAN_CTAG_TX) ? "ON" : "OFF");
if (features & NETIF_F_LOOPBACK) if (DEV_FEATURE_CHANGED(netdev, features, NETIF_F_LOOPBACK)) {
priv->ctrl_flags |= cpu_to_be32(MLX4_WQE_CTRL_FORCE_LOOPBACK); en_info(priv, "Turn %s loopback\n",
else (features & NETIF_F_LOOPBACK) ? "ON" : "OFF");
priv->ctrl_flags &= mlx4_en_update_loopback_state(netdev, features);
cpu_to_be32(~MLX4_WQE_CTRL_FORCE_LOOPBACK); }
mlx4_en_update_loopback_state(netdev, features);
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册