From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 01D6E1DED49; Mon, 6 Jan 2025 16:41:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736181709; cv=none; b=ESZvp6u1qc32cu0CuEVzxJC4WcUR2M7XAGQhYutpgBMPfF5A+7bOTF2nkOeoQ48preVtMpZ0GRkt0jnfCp5NwBQ6cK68hi23p9lAlYf1Z2IPx4T3jd69DRvqBCdG7SD8M9A7MvZ07YbWm6Ub327BQTy0x7XHj3QAY+BHY1dWs8E= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736181709; c=relaxed/simple; bh=pqZ9b/s4QO1eG2Yb1XLdjRCZrTPGoo0GVnFZ/BJoM9Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=dxKDo9RKQNCBr5ch6MtXAnLz24Dm3K/zUKDmhYAL0qWAoGKlW6ikGcpMO1wTCUlinlzM9CQF0DLEHIdI9liKznZCbJkHmlmKfClV20oUI5s4pESCxLacKdRSHMF8qX6rbcguOf9cpbNKpgkS/IqcCVE1np4QVilr4lYy+cLTtpA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AJ4+DsJf; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="AJ4+DsJf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 81A3AC4CED2; Mon, 6 Jan 2025 16:41:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1736181708; bh=pqZ9b/s4QO1eG2Yb1XLdjRCZrTPGoo0GVnFZ/BJoM9Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AJ4+DsJfkVn6CQ1JQn6R4AsS4JaDJC1YBKJ6jzPPAXnQzn/MuiHqbuTKmhTIggbX0 b2ZSn9hfDxAbbWQxz+S0RMhJiwGXqez/VKp5ftXUQgX4q2oOSiUzVQU63pGH2VpAKY RI8CLvFbARtXMaEokns39YLVN8zeNbQve1rKwDNWUTShS9zswVV0F42rsOaoIzFxpu yf1vls8FjDRRXZQ7P1U490JMoPROCgFKMvuud9y58TUuHlMhUtaaw7N60WY2t3XGrR YLjqJNSOGVyh6afp1+V/VIdN2QJOCxBhTgGYUEtiK3eLrpSEMTA5nW+7oEyL4bMXQv nbhM81LIMywPA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hongguang Gao , Saravanan Vajravel , Kalesh AP , Selvin Xavier , Leon Romanovsky , Sasha Levin , linux-rdma@vger.kernel.org Subject: [PATCH AUTOSEL 6.12 3/8] RDMA/bnxt_re: Fix to export port num to ib_query_qp Date: Mon, 6 Jan 2025 11:41:03 -0500 Message-Id: <20250106164138.1122164-3-sashal@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250106164138.1122164-1-sashal@kernel.org> References: <20250106164138.1122164-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.12.8 Content-Transfer-Encoding: 8bit From: Hongguang Gao [ Upstream commit 34db8ec931b84d1426423f263b1927539e73b397 ] Current driver implementation doesn't populate the port_num field in query_qp. Adding the code to convert internal firmware port id to ibv defined port number and export it. Reviewed-by: Saravanan Vajravel Reviewed-by: Kalesh AP Signed-off-by: Hongguang Gao Signed-off-by: Selvin Xavier Link: https://patch.msgid.link/20241211083931.968831-5-kalesh-anakkur.purayil@broadcom.com Signed-off-by: Leon Romanovsky Signed-off-by: Sasha Levin --- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 1 + drivers/infiniband/hw/bnxt_re/ib_verbs.h | 4 ++++ drivers/infiniband/hw/bnxt_re/qplib_fp.c | 1 + drivers/infiniband/hw/bnxt_re/qplib_fp.h | 1 + 4 files changed, 7 insertions(+) diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c index 160096792224..a814292c5a45 100644 --- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c +++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c @@ -2267,6 +2267,7 @@ int bnxt_re_query_qp(struct ib_qp *ib_qp, struct ib_qp_attr *qp_attr, qp_attr->retry_cnt = qplib_qp->retry_cnt; qp_attr->rnr_retry = qplib_qp->rnr_retry; qp_attr->min_rnr_timer = qplib_qp->min_rnr_timer; + qp_attr->port_num = __to_ib_port_num(qplib_qp->port_id); qp_attr->rq_psn = qplib_qp->rq.psn; qp_attr->max_rd_atomic = qplib_qp->max_rd_atomic; qp_attr->sq_psn = qplib_qp->sq.psn; diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.h b/drivers/infiniband/hw/bnxt_re/ib_verbs.h index b789e47ec97a..9cd8f770d1b2 100644 --- a/drivers/infiniband/hw/bnxt_re/ib_verbs.h +++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.h @@ -264,6 +264,10 @@ void bnxt_re_dealloc_ucontext(struct ib_ucontext *context); int bnxt_re_mmap(struct ib_ucontext *context, struct vm_area_struct *vma); void bnxt_re_mmap_free(struct rdma_user_mmap_entry *rdma_entry); +static inline u32 __to_ib_port_num(u16 port_id) +{ + return (u32)port_id + 1; +} unsigned long bnxt_re_lock_cqs(struct bnxt_re_qp *qp); void bnxt_re_unlock_cqs(struct bnxt_re_qp *qp, unsigned long flags); diff --git a/drivers/infiniband/hw/bnxt_re/qplib_fp.c b/drivers/infiniband/hw/bnxt_re/qplib_fp.c index 7ad83566ab0f..02d87a8f81c9 100644 --- a/drivers/infiniband/hw/bnxt_re/qplib_fp.c +++ b/drivers/infiniband/hw/bnxt_re/qplib_fp.c @@ -1470,6 +1470,7 @@ int bnxt_qplib_query_qp(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp) qp->dest_qpn = le32_to_cpu(sb->dest_qp_id); memcpy(qp->smac, sb->src_mac, 6); qp->vlan_id = le16_to_cpu(sb->vlan_pcp_vlan_dei_vlan_id); + qp->port_id = le16_to_cpu(sb->port_id); bail: dma_free_coherent(&rcfw->pdev->dev, sbuf.size, sbuf.sb, sbuf.dma_addr); diff --git a/drivers/infiniband/hw/bnxt_re/qplib_fp.h b/drivers/infiniband/hw/bnxt_re/qplib_fp.h index f55958e5fddb..296ed6afebb7 100644 --- a/drivers/infiniband/hw/bnxt_re/qplib_fp.h +++ b/drivers/infiniband/hw/bnxt_re/qplib_fp.h @@ -299,6 +299,7 @@ struct bnxt_qplib_qp { u32 dest_qpn; u8 smac[6]; u16 vlan_id; + u16 port_id; u8 nw_type; struct bnxt_qplib_ah ah; -- 2.39.5