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

From: Noa Osherovich
Date: Sun Mar 18 2018 - 03:28:48 EST


On 3/16/2018 4:59 PM, Hal Rosenstock wrote:
> 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>

Reviewed-by: Noa Osherovich <noaos@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);
>>
>>