Commit 7852546f authored by Maor Gottlieb's avatar Maor Gottlieb Committed by Jason Gunthorpe
Browse files

RDMA/mlx5: Fix query RoCE port

mlx5_is_roce_enabled returns the devlink RoCE init value, therefore it
should be used only when driver is loaded. Instead we just need to read
the roce_en field.

In addition, rename mlx5_is_roce_enabled to mlx5_is_roce_init_enabled.

Fixes: 7a58779e ("IB/mlx5: Improve query port for representor port")
Link: https://lore.kernel.org/r/20210304124517.1100608-2-leon@kernel.org


Signed-off-by: default avatarMaor Gottlieb <maorg@nvidia.com>
Signed-off-by: default avatarLeon Romanovsky <leonro@nvidia.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent 14d05b55
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -499,7 +499,7 @@ static int mlx5_query_port_roce(struct ib_device *device, u8 port_num,
	translate_eth_proto_oper(eth_prot_oper, &props->active_speed,
				 &props->active_width, ext);

	if (!dev->is_rep && mlx5_is_roce_enabled(mdev)) {
	if (!dev->is_rep && dev->mdev->roce.roce_en) {
		u16 qkey_viol_cntr;

		props->port_cap_flags |= IB_PORT_CM_SUP;
@@ -4174,7 +4174,7 @@ static int mlx5_ib_roce_init(struct mlx5_ib_dev *dev)

		/* Register only for native ports */
		err = mlx5_add_netdev_notifier(dev, port_num);
		if (err || dev->is_rep || !mlx5_is_roce_enabled(mdev))
		if (err || dev->is_rep || !mlx5_is_roce_init_enabled(mdev))
			/*
			 * We don't enable ETH interface for
			 * 1. IB representors
@@ -4711,7 +4711,7 @@ static int mlx5r_probe(struct auxiliary_device *adev,
	dev->mdev = mdev;
	dev->num_ports = num_ports;

	if (ll == IB_LINK_LAYER_ETHERNET && !mlx5_is_roce_enabled(mdev))
	if (ll == IB_LINK_LAYER_ETHERNET && !mlx5_is_roce_init_enabled(mdev))
		profile = &raw_eth_profile;
	else
		profile = &pf_profile;
+1 −1
Original line number Diff line number Diff line
@@ -1226,7 +1226,7 @@ enum {
	MLX5_TRIGGERED_CMD_COMP = (u64)1 << 32,
};

static inline bool mlx5_is_roce_enabled(struct mlx5_core_dev *dev)
static inline bool mlx5_is_roce_init_enabled(struct mlx5_core_dev *dev)
{
	struct devlink *devlink = priv_to_devlink(dev);
	union devlink_param_value val;