aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx5/core/lag.c
diff options
context:
space:
mode:
authorAviv Heller <avivh@mellanox.com>2016-05-30 18:32:32 +0300
committerLeon Romanovsky <leon@kernel.org>2016-08-18 18:49:58 +0300
commit917b41aab7b3afb2221ac0895f302ee32431fa6e (patch)
treeb419326e0c2b5241138280219745aea91e73c6e1 /drivers/net/ethernet/mellanox/mlx5/core/lag.c
parentnet/mlx5: Vport LAG creation support (diff)
downloadlinux-dev-917b41aab7b3afb2221ac0895f302ee32431fa6e.tar.xz
linux-dev-917b41aab7b3afb2221ac0895f302ee32431fa6e.zip
net/mlx5: Configure IB devices according to LAG state
When mlx5_ib is loaded, we would like each card's IB devices to be added according to its LAG state (one IB device, instead of two, is to be added if LAG is active). Signed-off-by: Aviv Heller <avivh@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/lag.c')
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/lag.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag.c b/drivers/net/ethernet/mellanox/mlx5/core/lag.c
index 5fe320c5a60e..92c3e0dbcbdc 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag.c
@@ -583,3 +583,20 @@ unlock:
}
EXPORT_SYMBOL(mlx5_lag_get_roce_netdev);
+bool mlx5_lag_intf_add(struct mlx5_interface *intf, struct mlx5_priv *priv)
+{
+ struct mlx5_core_dev *dev = container_of(priv, struct mlx5_core_dev,
+ priv);
+ struct mlx5_lag *ldev;
+
+ if (intf->protocol != MLX5_INTERFACE_PROTOCOL_IB)
+ return true;
+
+ ldev = mlx5_lag_dev_get(dev);
+ if (!ldev || !mlx5_lag_is_bonded(ldev) || ldev->pf[0].dev == dev)
+ return true;
+
+ /* If bonded, we do not add an IB device for PF1. */
+ return false;
+}
+