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
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]>