From: Zhu Yanjun <yanjun.zhu@linux.dev>
To: Zhiwei Zhang <202275009@qq.com>,
Zhu Yanjun <zyjzyj2000@gmail.com>, Jason Gunthorpe <jgg@ziepe.ca>,
Leon Romanovsky <leon@kernel.org>,
"yanjun.zhu@linux.dev" <yanjun.zhu@linux.dev>
Cc: linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] RDMA/rxe: Check PDs for memory window binds
Date: Thu, 25 Jun 2026 08:47:27 -0700 [thread overview]
Message-ID: <0060137c-acb5-4965-bdea-a5601cc4df61@linux.dev> (raw)
In-Reply-To: <tencent_88CB6CA0A60CDD53B24EA5E3A865E6FF5A0A@qq.com>
在 2026/6/24 23:16, Zhiwei Zhang 写道:
> The IBTA Software Transport Verbs specification requires the QP,
> Memory Window and Memory Region for a Bind Memory Window operation
> to belong to the same HCA and protection domain.
>
> rxe only checked the QP and MW protection domain for type 2 MWs.
> Move the QP/MW PD check to the common bind path and also reject
> binding an MW to an MR from a different PD.
>
> Invalid bind requests continue to fail with IB_WC_MW_BIND_ERR.
>
> Signed-off-by: Zhiwei Zhang <202275009@qq.com>
> ---
> drivers/infiniband/sw/rxe/rxe_mw.c | 20 ++++++++++++--------
> 1 file changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/infiniband/sw/rxe/rxe_mw.c b/drivers/infiniband/sw/rxe/rxe_mw.c
> index 379e65bfcd49..aa9371e4ccd5 100644
> --- a/drivers/infiniband/sw/rxe/rxe_mw.c
> +++ b/drivers/infiniband/sw/rxe/rxe_mw.c
> @@ -72,13 +72,6 @@ static int rxe_check_bind_mw(struct rxe_qp *qp, struct rxe_send_wqe *wqe,
> return -EINVAL;
> }
>
> - /* C10-72 */
> - if (unlikely(qp->pd != to_rpd(mw->ibmw.pd))) {
> - rxe_dbg_mw(mw,
> - "attempt to bind type 2 MW with qp with different PD\n");
> - return -EINVAL;
> - }
> -
> /* o10-37.2.40 */
> if (unlikely(!mr || wqe->wr.wr.mw.length == 0)) {
> rxe_dbg_mw(mw,
> @@ -87,10 +80,21 @@ static int rxe_check_bind_mw(struct rxe_qp *qp, struct rxe_send_wqe *wqe,
> }
> }
>
> - /* remaining checks only apply to a nonzero MR */
> + /* C10-72 */
> + if (unlikely(qp->pd != rxe_mw_pd(mw))) {
> + rxe_dbg_mw(mw, "attempt to bind MW with qp with different PD\n");
> + return -EINVAL;
> + }
> +
> if (!mr)
> return 0;
>
> + /* remaining checks only apply to a nonzero MR */
> + if (unlikely(qp->pd != mr_pd(mr))) {
> + rxe_dbg_mw(mw, "attempt to bind MW to MR with different PD\n");
> + return -EINVAL;
> + }
Since the previous check has already explicitly confirmed that qp->pd ==
rxe_mw_pd(mw), this second check implicitly means mw->pd != mr_pd(mr).
However, for the sake of absolute precision in the kernel logs—and to
help anyone debugging immediately identify which of the three entities
is mismatched—it would be better to make the log message more explicit.
"attempt to bind MW/QP to MR with different PD\n"
Except this log, I am fine with this patch.
Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev>
Zhu Yanjun
> +
> if (unlikely(mr->access & IB_ZERO_BASED)) {
> rxe_dbg_mw(mw, "attempt to bind MW to zero based MR\n");
> return -EINVAL;
prev parent reply other threads:[~2026-06-25 15:47 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-25 6:16 [PATCH] RDMA/rxe: Check PDs for memory window binds Zhiwei Zhang
2026-06-25 15:47 ` Zhu Yanjun [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0060137c-acb5-4965-bdea-a5601cc4df61@linux.dev \
--to=yanjun.zhu@linux.dev \
--cc=202275009@qq.com \
--cc=jgg@ziepe.ca \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=zyjzyj2000@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.