Skip to content

Commit 94de879

Browse files
mikijoySaeed Mahameed
authored andcommitted
IB/mlx5: Load profile according to RoCE enablement state
When RoCE is disabled load mlx5_ib in raw_eth profile. Clean pf_profile roce capability checks as it will not be used without roce capability. Signed-off-by: Michael Guralnik <[email protected]> Reviewed-by: Maor Gottlieb <[email protected]> Reviewed-by: Leon Romanovsky <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent b5a498b commit 94de879

File tree

1 file changed

+13
-12
lines changed
  • drivers/infiniband/hw/mlx5

1 file changed

+13
-12
lines changed

drivers/infiniband/hw/mlx5/main.c

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5145,8 +5145,7 @@ static int mlx5_port_immutable(struct ib_device *ibdev, u8 port_num,
51455145
immutable->pkey_tbl_len = attr.pkey_tbl_len;
51465146
immutable->gid_tbl_len = attr.gid_tbl_len;
51475147
immutable->core_cap_flags = get_core_cap_flags(ibdev, &rep);
5148-
if ((ll == IB_LINK_LAYER_INFINIBAND) || MLX5_CAP_GEN(dev->mdev, roce))
5149-
immutable->max_mad_size = IB_MGMT_MAD_SIZE;
5148+
immutable->max_mad_size = IB_MGMT_MAD_SIZE;
51505149

51515150
return 0;
51525151
}
@@ -5249,11 +5248,9 @@ static int mlx5_enable_eth(struct mlx5_ib_dev *dev)
52495248
{
52505249
int err;
52515250

5252-
if (MLX5_CAP_GEN(dev->mdev, roce)) {
5253-
err = mlx5_nic_vport_enable_roce(dev->mdev);
5254-
if (err)
5255-
return err;
5256-
}
5251+
err = mlx5_nic_vport_enable_roce(dev->mdev);
5252+
if (err)
5253+
return err;
52575254

52585255
err = mlx5_eth_lag_init(dev);
52595256
if (err)
@@ -5262,17 +5259,15 @@ static int mlx5_enable_eth(struct mlx5_ib_dev *dev)
52625259
return 0;
52635260

52645261
err_disable_roce:
5265-
if (MLX5_CAP_GEN(dev->mdev, roce))
5266-
mlx5_nic_vport_disable_roce(dev->mdev);
5262+
mlx5_nic_vport_disable_roce(dev->mdev);
52675263

52685264
return err;
52695265
}
52705266

52715267
static void mlx5_disable_eth(struct mlx5_ib_dev *dev)
52725268
{
52735269
mlx5_eth_lag_cleanup(dev);
5274-
if (MLX5_CAP_GEN(dev->mdev, roce))
5275-
mlx5_nic_vport_disable_roce(dev->mdev);
5270+
mlx5_nic_vport_disable_roce(dev->mdev);
52765271
}
52775272

52785273
struct mlx5_ib_counter {
@@ -6898,6 +6893,7 @@ static void *mlx5_ib_add_slave_port(struct mlx5_core_dev *mdev)
68986893

68996894
static void *mlx5_ib_add(struct mlx5_core_dev *mdev)
69006895
{
6896+
const struct mlx5_ib_profile *profile;
69016897
enum rdma_link_layer ll;
69026898
struct mlx5_ib_dev *dev;
69036899
int port_type_cap;
@@ -6933,7 +6929,12 @@ static void *mlx5_ib_add(struct mlx5_core_dev *mdev)
69336929
dev->mdev = mdev;
69346930
dev->num_ports = num_ports;
69356931

6936-
return __mlx5_ib_add(dev, &pf_profile);
6932+
if (ll == IB_LINK_LAYER_ETHERNET && !mlx5_is_roce_enabled(mdev))
6933+
profile = &raw_eth_profile;
6934+
else
6935+
profile = &pf_profile;
6936+
6937+
return __mlx5_ib_add(dev, profile);
69376938
}
69386939

69396940
static void mlx5_ib_remove(struct mlx5_core_dev *mdev, void *context)

0 commit comments

Comments
 (0)