Re: [PATCH] IB/mlx5: Set the default active rate and width to QDR and 4X

From: Hal Rosenstock
Date: Fri Mar 16 2018 - 10:59:43 EST


On 3/15/2018 10:37 PM, Honggang LI wrote:
> From: Honggang Li <honli@xxxxxxxxxx>
>
> commit f1b65df5a232 ("IB/mlx5: Add support for active_width and
> active_speed in RoCE"). Before this patch applied, the mlx5_ib
> driver set default active_width and active_speed to IB_WIDTH_4X
> and IB_SPEED_QDR.
>
> When the RoCE port is down, the RoCE port did not negotiate the
> active width with remote side. The active width is zero. If run
> ibstat to require the port status, ibstat will panic as it read
> invalid width from sys file.
>
> This patch restores the original behavior.
>
> Fixes: f1b65df5a232 ("IB/mlx5: Add support for active_width and active_speed in RoCE").
> Signed-off-by: Honggang Li <honli@xxxxxxxxxx>

Reviewed-by: Hal Rosenstock <hal@xxxxxxxxxxxx>

> ---
> drivers/infiniband/hw/mlx5/main.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
> index 033b6af90de9..a48e9730fab8 100644
> --- a/drivers/infiniband/hw/mlx5/main.c
> +++ b/drivers/infiniband/hw/mlx5/main.c
> @@ -388,6 +388,9 @@ static int mlx5_query_port_roce(struct ib_device *device, u8 port_num,
> if (err)
> goto out;
>
> + props->active_width = IB_WIDTH_4X;
> + props->active_speed = IB_SPEED_QDR;
> +
> translate_eth_proto_oper(eth_prot_oper, &props->active_speed,
> &props->active_width);
>
>