From: Bob Pearson Date: Tue, 14 Sep 2021 16:42:07 +0000 (-0500) Subject: RDMA/rxe: Only allow invalidate for appropriate MRs X-Git-Tag: v6.6.17~8927^2~87 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=450f4f6aa1a369cc3ffadc1c7e27dfab3e90199f;p=platform%2Fkernel%2Flinux-rpi.git RDMA/rxe: Only allow invalidate for appropriate MRs Local and remote invalidate operations are not allowed by IBA for MRs created by (re)register memory verbs. This patch checks the MR type in rxe_invalidate_mr(). Link: https://lore.kernel.org/r/20210914164206.19768-6-rpearsonhpe@gmail.com Signed-off-by: Bob Pearson Signed-off-by: Jason Gunthorpe --- diff --git a/drivers/infiniband/sw/rxe/rxe_mr.c b/drivers/infiniband/sw/rxe/rxe_mr.c index 8d658d4..53271df 100644 --- a/drivers/infiniband/sw/rxe/rxe_mr.c +++ b/drivers/infiniband/sw/rxe/rxe_mr.c @@ -605,6 +605,12 @@ int rxe_invalidate_mr(struct rxe_qp *qp, u32 rkey) goto err_drop_ref; } + if (unlikely(mr->type != IB_MR_TYPE_MEM_REG)) { + pr_warn("%s: mr->type (%d) is wrong type\n", __func__, mr->type); + ret = -EINVAL; + goto err_drop_ref; + } + mr->state = RXE_MR_STATE_FREE; ret = 0;