diff mbox series

[for-next] RDMA/rxe: Fix mw bind to allow any consumer key portion

Message ID 20220714204619.13396-1-rpearsonhpe@gmail.com (mailing list archive)
State Accepted
Delegated to: Jason Gunthorpe
Headers show
Series [for-next] RDMA/rxe: Fix mw bind to allow any consumer key portion | expand

Commit Message

Bob Pearson July 14, 2022, 8:46 p.m. UTC
The current implementation of rxe_check_bind_mw() in rxe_mw.c
is incorrect since it requires the new key portion provided by
the mw consumer to be different than the previous key portion.
This is not required by the IBA. This patch removes that test.

Link: https://lore.kernel.org/linux-rdma/fb4614e7-4cac-0dc7-3ef7-766dfd10e8f2@gmail.com/
Fixes: 32a577b4c3a9 ("Add support for bind MW work requests")
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
---
 drivers/infiniband/sw/rxe/rxe_mw.c | 7 -------
 1 file changed, 7 deletions(-)


base-commit: 2635d2a8d4664b665bc12e15eee88e9b1b40ae7b

Comments

Jason Gunthorpe July 21, 2022, 2:40 p.m. UTC | #1
On Thu, Jul 14, 2022 at 03:46:20PM -0500, Bob Pearson wrote:
> The current implementation of rxe_check_bind_mw() in rxe_mw.c
> is incorrect since it requires the new key portion provided by
> the mw consumer to be different than the previous key portion.
> This is not required by the IBA. This patch removes that test.
> 
> Link: https://lore.kernel.org/linux-rdma/fb4614e7-4cac-0dc7-3ef7-766dfd10e8f2@gmail.com/
> Fixes: 32a577b4c3a9 ("Add support for bind MW work requests")
> Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
> ---
>  drivers/infiniband/sw/rxe/rxe_mw.c | 7 -------
>  1 file changed, 7 deletions(-)

Applied to for-next, thanks

Jason
diff mbox series

Patch

diff --git a/drivers/infiniband/sw/rxe/rxe_mw.c b/drivers/infiniband/sw/rxe/rxe_mw.c
index bb6a1edaaee8..cfd75c48e4b0 100644
--- a/drivers/infiniband/sw/rxe/rxe_mw.c
+++ b/drivers/infiniband/sw/rxe/rxe_mw.c
@@ -50,8 +50,6 @@  int rxe_dealloc_mw(struct ib_mw *ibmw)
 static int rxe_check_bind_mw(struct rxe_qp *qp, struct rxe_send_wqe *wqe,
 			 struct rxe_mw *mw, struct rxe_mr *mr)
 {
-	u32 key = wqe->wr.wr.mw.rkey & 0xff;
-
 	if (mw->ibmw.type == IB_MW_TYPE_1) {
 		if (unlikely(mw->state != RXE_MW_STATE_VALID)) {
 			pr_err_once(
@@ -89,11 +87,6 @@  static int rxe_check_bind_mw(struct rxe_qp *qp, struct rxe_send_wqe *wqe,
 		}
 	}
 
-	if (unlikely(key == (mw->rkey & 0xff))) {
-		pr_err_once("attempt to bind MW with same key\n");
-		return -EINVAL;
-	}
-
 	/* remaining checks only apply to a nonzero MR */
 	if (!mr)
 		return 0;