summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/mthca/mthca_qp.c
diff options
context:
space:
mode:
authorThomas Bogendoerfer <tbogendoerfer@suse.de>2023-07-13 16:16:58 +0200
committerLeon Romanovsky <leon@kernel.org>2023-07-17 08:02:13 +0300
commitdc52aadbc1849cbe3fcf6bc54d35f6baa396e0a1 (patch)
tree02a4d997afb9fdbb12baca1e9f3326a038630eda /drivers/infiniband/hw/mthca/mthca_qp.c
parent0e15863015d97c1ee2cc29d599abcc7fa2dc3e95 (diff)
downloadlinux-dc52aadbc1849cbe3fcf6bc54d35f6baa396e0a1.tar.gz
linux-dc52aadbc1849cbe3fcf6bc54d35f6baa396e0a1.tar.bz2
linux-dc52aadbc1849cbe3fcf6bc54d35f6baa396e0a1.zip
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 <tbogendoerfer@suse.de> Link: https://lore.kernel.org/r/20230713141658.9426-1-tbogendoerfer@suse.de Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'drivers/infiniband/hw/mthca/mthca_qp.c')
-rw-r--r--drivers/infiniband/hw/mthca/mthca_qp.c2
1 files changed, 1 insertions, 1 deletions
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)