]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
RDMA/mana: Remove user triggerable WARN_ON() in mana_ib_create_qp_rss()
authorJason Gunthorpe <jgg@nvidia.com>
Tue, 28 Apr 2026 16:17:38 +0000 (13:17 -0300)
committerJason Gunthorpe <jgg@nvidia.com>
Sat, 2 May 2026 18:30:48 +0000 (15:30 -0300)
Sashiko points out that the user can specify WQs sharing the same CQ as a
part of the uAPI and this will trigger the WARN_ON() then go on to corrupt
the kernel.

Just reject it outright and fail the QP creation.

Cc: stable@vger.kernel.org
Fixes: c15d7802a424 ("RDMA/mana_ib: Add CQ interrupt support for RAW QP")
Link: https://sashiko.dev/#/patchset/0-v2-1c49eeb88c48%2B91-rdma_udata_rep_jgg%40nvidia.com?part=1
Link: https://patch.msgid.link/r/5-v1-41f3135e5565+9d2-rdma_ai_fixes1_jgg@nvidia.com
Reviewed-by: Long Li <longli@microsoft.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/mana/cq.c

index f4cbe21763bf114b4742beb98756e17f0fab0fff..2d682428ef202a392d1f1521c8fa1f0a1ab7e6c3 100644 (file)
@@ -137,8 +137,9 @@ int mana_ib_install_cq_cb(struct mana_ib_dev *mdev, struct mana_ib_cq *cq)
 
        if (cq->queue.id >= gc->max_num_cqs)
                return -EINVAL;
-       /* Create CQ table entry */
-       WARN_ON(gc->cq_table[cq->queue.id]);
+       /* Create CQ table entry, sharing a CQ between WQs is not supported */
+       if (gc->cq_table[cq->queue.id])
+               return -EINVAL;
        if (cq->queue.kmem)
                gdma_cq = cq->queue.kmem;
        else