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)
committerLeon Romanovsky <leon@kernel.org>
Wed, 13 Aug 2025 10:23:54 +0000 (06:23 -0400)
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>
drivers/infiniband/hw/erdma/erdma_verbs.c

index 2e01520ca3850f7712567f940bb33b3ba55ab397..fdeec33c71da2058c47bbfefe48631d7a40eb3f3 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),