Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4742984pxj; Wed, 12 May 2021 12:11:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx02VOgSCV+Hoyt+6jjzrdzdkyYQS+diXxSr67vSk+pSsaJHWo6rjpMcd866zWvNfugkc/r X-Received: by 2002:a17:906:4d07:: with SMTP id r7mr39204683eju.224.1620846674938; Wed, 12 May 2021 12:11:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620846674; cv=none; d=google.com; s=arc-20160816; b=f7642xll+dCupMqMp9G6J0cGpKsxGWPXJG+DWWMJ1zt151m4RkUZgGIlQy+MA7/3Xr Eegs66ek5xEXVimzAbnYbYFnvm8ZUw2DL6N3fUtlt4pfoGgDGSflV1mClnEGzZGSqX7W rQNc4FVCBE31J0yMYv15M9Ekk/kMvFXnw/WfY59//IQzUfOUO+RpiVl0psx5m4VIJ6by 9/1Nr0CzzEs/kItUFoQfxU66HWMn+rB0z4rykH8NOV8MMIR6fHZQUzmcMPYlEYdUL7OP 3heOUhl6+iPQZa+syoE3BqT51V5Vkqtunf9SGVY6Iwsa3vx0/FNfC6BwhajQPWFB3z/G 6Xow== 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=gKbMOi8j59lYwj4wSjGyo6rGFBPOYPZy5LCzQLul/Gs=; b=Wr9I2Mp61QCKWEk9wq1xwFSJVW89ptb2huqsjvLFgzFZHmFpNtdNJl4/CygJ+TvZJg T3omtJ19EM/fPerv8Zpmym+oki7AqCgALzJBm0RINqxgscEng2GS1pTTG1ZqgY9EjSaL BFvRtOhZM54RBUGnfDiUnBQ1K7n3dLnPRbNIcILZyjkxeA9VYgn7lLM6gFZ6A1biXAMb QAiKqxgzVQa0Z4ZZomubn7B3LVXBUwqtKR2CupNgb8WNLKVJji79/ZeOPzOOzrScll/Y jnBy4H6mdpwWDPXrSBaL3rXuej8sZGEY5Wh5fzMxydm203STbdPmfJibHX9ZREOsdQB9 FkuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=NGs97IwH; 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 u10si695080ejk.397.2021.05.12.12.10.49; Wed, 12 May 2021 12:11:14 -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=NGs97IwH; 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 S1359223AbhELSwd (ORCPT + 99 others); Wed, 12 May 2021 14:52:33 -0400 Received: from mail.kernel.org ([198.145.29.99]:35800 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243895AbhELQmM (ORCPT ); Wed, 12 May 2021 12:42:12 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9F3CB61C53; Wed, 12 May 2021 16:08:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620835689; bh=FSCMce53C/SXoHFsmmzPsDugLEjoVVoQnk57t5imdoE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NGs97IwHsKUkfsOb3+OLF+jJ6xpp5V2rJqRGvtrKiZ/a+v5sEezLD7YVzw1B7fD3B DLUy36v3xwtS+E7k4e+OTjHXgVQLjFeouPBC2UA8ZCLnSOIX6f68a9AHxRox9qY4Ry SblVLhJ670uPXN3FGv8JaQQrhr3wEnjeOO2Ww+vo= 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.12 444/677] RDMA/mlx5: Fix mlx5 rates to IB rates map Date: Wed, 12 May 2021 16:48:10 +0200 Message-Id: <20210512144852.096946784@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144837.204217980@linuxfoundation.org> References: <20210512144837.204217980@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 f5a52a6fae43..843f9e7fe96f 100644 --- a/drivers/infiniband/hw/mlx5/qp.c +++ b/drivers/infiniband/hw/mlx5/qp.c @@ -3146,6 +3146,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) { @@ -4485,7 +4498,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