]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
RDMA/erdma: Fix unset QPN of GSI QP
authorBoshi Yu <boshiyu@linux.alibaba.com>
Fri, 25 Jul 2025 05:53:56 +0000 (13:53 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:34:44 +0000 (16:34 +0200)
[ Upstream commit d4ac86b47563c7895dae28658abd1879d266b2b4 ]

The QPN of the GSI QP was not set, which may cause issues.
Set the QPN to 1 when creating the GSI QP.

Fixes: 999a0a2e9b87 ("RDMA/erdma: Support UD QPs and UD WRs")
Reviewed-by: Cheng Xu <chengyou@linux.alibaba.com>
Signed-off-by: Boshi Yu <boshiyu@linux.alibaba.com>
Link: https://patch.msgid.link/20250725055410.67520-4-boshiyu@linux.alibaba.com
Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/erdma/erdma_verbs.c

index c1b2b8c3cdccaab687a7333124d515d0d2822bbb..8d7596abb82296c544b7fd4e691cf45a2bfe68b5 100644 (file)
@@ -994,6 +994,8 @@ int erdma_create_qp(struct ib_qp *ibqp, struct ib_qp_init_attr *attrs,
                old_entry = xa_store(&dev->qp_xa, 1, qp, GFP_KERNEL);
                if (xa_is_err(old_entry))
                        ret = xa_err(old_entry);
+               else
+                       qp->ibqp.qp_num = 1;
        } else {
                ret = xa_alloc_cyclic(&dev->qp_xa, &qp->ibqp.qp_num, qp,
                                      XA_LIMIT(1, dev->attrs.max_qp - 1),