2023-07-13 14:42:19

by Thomas Bogendoerfer

[permalink] [raw]
Subject: [PATCH] RDMA/mthca: Fix crash when polling CQ for shared QPs

Commit 21c2fe94abb2 ("RDMA/mthca: Combine special QP struct with mthca QP")
introduced a new struct mthca_sqp which doesn't contain struct mthca_qp
any longer. Placing a pointer of this new struct into qptable leads
to crashes, because mthca_poll_one() expects a qp pointer. Fix this
by putting the correct pointer into qptable.

Fixes: 21c2fe94abb2 ("RDMA/mthca: Combine special QP struct with mthca QP")
Signed-off-by: Thomas Bogendoerfer <[email protected]>
---
drivers/infiniband/hw/mthca/mthca_qp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/mthca/mthca_qp.c b/drivers/infiniband/hw/mthca/mthca_qp.c
index 69bba0ef4a5d..53f43649f7d0 100644
--- a/drivers/infiniband/hw/mthca/mthca_qp.c
+++ b/drivers/infiniband/hw/mthca/mthca_qp.c
@@ -1393,7 +1393,7 @@ int mthca_alloc_sqp(struct mthca_dev *dev,
if (mthca_array_get(&dev->qp_table.qp, mqpn))
err = -EBUSY;
else
- mthca_array_set(&dev->qp_table.qp, mqpn, qp->sqp);
+ mthca_array_set(&dev->qp_table.qp, mqpn, qp);
spin_unlock_irq(&dev->qp_table.lock);

if (err)
--
2.35.3



2023-07-16 12:37:53

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH] RDMA/mthca: Fix crash when polling CQ for shared QPs


On Thu, 13 Jul 2023 16:16:58 +0200, Thomas Bogendoerfer wrote:
> Commit 21c2fe94abb2 ("RDMA/mthca: Combine special QP struct with mthca QP")
> introduced a new struct mthca_sqp which doesn't contain struct mthca_qp
> any longer. Placing a pointer of this new struct into qptable leads
> to crashes, because mthca_poll_one() expects a qp pointer. Fix this
> by putting the correct pointer into qptable.
>
>
> [...]

Applied, thanks!

[1/1] RDMA/mthca: Fix crash when polling CQ for shared QPs
https://git.kernel.org/rdma/rdma/c/5ceccabbdcf805

Best regards,
--
Leon Romanovsky <[email protected]>