Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4680590pxj; Wed, 12 May 2021 10:44:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzEVuYoVGriMMId0e+yyBxRDtInyqjg3DewNp8NJvFHvdaubLWtLS1+silM3V7BxXqZJTNQ X-Received: by 2002:a17:906:3712:: with SMTP id d18mr4338267ejc.155.1620841384825; Wed, 12 May 2021 10:43:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620841384; cv=none; d=google.com; s=arc-20160816; b=ctLhCA56vzSlxuK8RBFs+cECFry/HkPgIqe6pkyUwpjzobT1TfWP1WO3FYmxQdhCHw fyzUxPkG5RRLhnT2YzLXY0Xdqc5hHHLwTMoXKNZbOAyPSDfKFozKwONM1mupuB4dJEnc bzrBYkarCFa/6kANmpc4iiL1b7VWdACGm2IisPh4LyrWHUdjvzFV3LnfG4DbWzDALFLI ZY3+WMnqcEq8Xu6VJI+RwxFjs4/VnjmQURkVRKZT6WEWumCKjDPuBAH34APwmclcB3a7 BHGkJUusRF8Vdd5djWldO0RhTvmNJQrD0RH0FZeZVIMHVdIPywGAWSzS1lf/Z3T/KmAv yurg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=5gSJ8d7/wPut1OxZmJjc3VhRpZyovuN6HmR2DlOpd54=; b=tmZdOS6/SxrF/G2oD54DbWt1cIpHS3A2HJI07y+vyV/OL2daRFKDj9FCiSaGNuKP3Q wxHiC26ldOUj2K99j2oIpUHwOv0dOliUiKA7PnCIcpaEziX5xW7Kgs5+7fTVVHJXiXL6 P2ZReGW5nRCiXl9Rg29BXE+ezFqhi2tvcMocPsoWitAsEcxJVrwSoGoVEQYCfSE5Ni6r eihynlQ9o+tPt9PIGbe4RGPeAtZOJ0I46Pbpzd4eIBv5a3dNx6NxvZN39o1fyIMiOV1Y 49vSaTJljV0+Hmj8l6XcSDam8RDq8qBns5tXSEU9J/rjCIwPyxGgLkXrVj1n4tLLSHUN kUMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Ecl0LzjE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f11si302992edc.302.2021.05.12.10.42.40; Wed, 12 May 2021 10:43:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Ecl0LzjE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348812AbhELRjG (ORCPT + 99 others); Wed, 12 May 2021 13:39:06 -0400 Received: from mail.kernel.org ([198.145.29.99]:49170 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235781AbhELQMX (ORCPT ); Wed, 12 May 2021 12:12:23 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 5539E61C6A; Wed, 12 May 2021 15:41:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620834062; bh=q2liiKI2QnZETaM0QIC2vf7fN6TeZIypwjnWGbfra10=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ecl0LzjElBCKh7jJLTOx/1QvZGPhlQVJdWIlDk4HAS8icsK5ckIequaxpMZaKWiN3 ddR96TUfjDY5kvxlcLEz4mWn9mjS0I8D2szcuohJ6kzcaCDw0hjr+pMBO/JlQXfsRj q/zrVKvDJrxFusEZofBuuKa8nmK2Ips6N1XiZ11U= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mark Zhang , Maor Gottlieb , Leon Romanovsky , Jason Gunthorpe , Sasha Levin Subject: [PATCH 5.11 394/601] RDMA/mlx5: Fix mlx5 rates to IB rates map Date: Wed, 12 May 2021 16:47:51 +0200 Message-Id: <20210512144840.781072598@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144827.811958675@linuxfoundation.org> References: <20210512144827.811958675@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mark Zhang [ Upstream commit 6fe6e568639859db960c8fcef19a2ece1c2d7eae ] Correct the map between mlx5 rates and corresponding ib rates, as they don't always have a fixed offset between them. Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters") Link: https://lore.kernel.org/r/20210304124517.1100608-4-leon@kernel.org Signed-off-by: Mark Zhang Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe Signed-off-by: Sasha Levin --- drivers/infiniband/hw/mlx5/qp.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c index bab40ad527da..434d70ff7ee9 100644 --- a/drivers/infiniband/hw/mlx5/qp.c +++ b/drivers/infiniband/hw/mlx5/qp.c @@ -3054,6 +3054,19 @@ enum { MLX5_PATH_FLAG_COUNTER = 1 << 2, }; +static int mlx5_to_ib_rate_map(u8 rate) +{ + static const int rates[] = { IB_RATE_PORT_CURRENT, IB_RATE_56_GBPS, + IB_RATE_25_GBPS, IB_RATE_100_GBPS, + IB_RATE_200_GBPS, IB_RATE_50_GBPS, + IB_RATE_400_GBPS }; + + if (rate < ARRAY_SIZE(rates)) + return rates[rate]; + + return rate - MLX5_STAT_RATE_OFFSET; +} + static int ib_to_mlx5_rate_map(u8 rate) { switch (rate) { @@ -4398,7 +4411,7 @@ static void to_rdma_ah_attr(struct mlx5_ib_dev *ibdev, rdma_ah_set_path_bits(ah_attr, MLX5_GET(ads, path, mlid)); static_rate = MLX5_GET(ads, path, stat_rate); - rdma_ah_set_static_rate(ah_attr, static_rate ? static_rate - 5 : 0); + rdma_ah_set_static_rate(ah_attr, mlx5_to_ib_rate_map(static_rate)); if (MLX5_GET(ads, path, grh) || ah_attr->type == RDMA_AH_ATTR_TYPE_ROCE) { rdma_ah_set_grh(ah_attr, NULL, MLX5_GET(ads, path, flow_label), -- 2.30.2