[PATCH rdma-next 47/50] RDMA/mlx5: Use generic resize-CQ lock
From: Leon Romanovsky
Date: Fri Feb 13 2026 - 06:10:24 EST
From: Leon Romanovsky <leonro@xxxxxxxxxx>
Replace the open‑coded resize‑CQ lock with the standard core
implementation for better consistency and maintainability.
Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx>
---
drivers/infiniband/hw/mlx5/cq.c | 8 +-------
drivers/infiniband/hw/mlx5/mlx5_ib.h | 3 ---
2 files changed, 1 insertion(+), 10 deletions(-)
diff --git a/drivers/infiniband/hw/mlx5/cq.c b/drivers/infiniband/hw/mlx5/cq.c
index 78c3494517d7..f7fb6f4aef7d 100644
--- a/drivers/infiniband/hw/mlx5/cq.c
+++ b/drivers/infiniband/hw/mlx5/cq.c
@@ -972,7 +972,6 @@ int mlx5_ib_create_user_cq(struct ib_cq *ibcq,
return -EINVAL;
cq->ibcq.cqe = entries - 1;
- mutex_init(&cq->resize_mutex);
spin_lock_init(&cq->lock);
if (attr->flags & IB_UVERBS_CQ_FLAGS_TIMESTAMP_COMPLETION)
cq->private_flags |= MLX5_IB_CQ_PR_TIMESTAMP_COMPLETION;
@@ -1057,7 +1056,6 @@ int mlx5_ib_create_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *attr,
return -EINVAL;
cq->ibcq.cqe = entries - 1;
- mutex_init(&cq->resize_mutex);
spin_lock_init(&cq->lock);
INIT_LIST_HEAD(&cq->list_send_qp);
INIT_LIST_HEAD(&cq->list_recv_qp);
@@ -1284,10 +1282,9 @@ int mlx5_ib_resize_cq(struct ib_cq *ibcq, unsigned int entries,
if (entries == ibcq->cqe + 1)
return 0;
- mutex_lock(&cq->resize_mutex);
err = resize_user(dev, cq, entries, udata, &cqe_size);
if (err)
- goto ex;
+ return err;
page_size = mlx5_umem_find_best_cq_quantized_pgoff(
cq->resize_umem, cqc, log_page_size, MLX5_ADAPTER_PAGE_SHIFT,
@@ -1339,7 +1336,6 @@ int mlx5_ib_resize_cq(struct ib_cq *ibcq, unsigned int entries,
ib_umem_release(cq->ibcq.umem);
cq->ibcq.umem = cq->resize_umem;
cq->resize_umem = NULL;
- mutex_unlock(&cq->resize_mutex);
kvfree(in);
return 0;
@@ -1350,8 +1346,6 @@ int mlx5_ib_resize_cq(struct ib_cq *ibcq, unsigned int entries,
ex_resize:
ib_umem_release(cq->resize_umem);
cq->resize_umem = NULL;
-ex:
- mutex_unlock(&cq->resize_mutex);
return err;
}
diff --git a/drivers/infiniband/hw/mlx5/mlx5_ib.h b/drivers/infiniband/hw/mlx5/mlx5_ib.h
index e99a647ed62d..7b34f32b5ecb 100644
--- a/drivers/infiniband/hw/mlx5/mlx5_ib.h
+++ b/drivers/infiniband/hw/mlx5/mlx5_ib.h
@@ -574,9 +574,6 @@ struct mlx5_ib_cq {
*/
spinlock_t lock;
- /* protect resize cq
- */
- struct mutex resize_mutex;
struct mlx5_ib_cq_buf *resize_buf;
struct ib_umem *resize_umem;
int cqe_size;
--
2.52.0