mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-06-11 15:46:40 +02:00
RDMA/mlx4: Restrict external umem for CQ when copy_to_user() is used
When the mlx4 firmware reports the MLX4_DEV_CAP_FLAG2_SW_CQ_INIT capability,
libmlx4 from the rdma-core package expects the driver to initialize memory
at the address provided in the buf_addr parameter of ucmd.
This behavior cannot be supported by any external umem implementation, so
restrict it accordingly.
Fixes: f45f195af5 ("RDMA/mlx4: Introduce a modern CQ creation interface")
Reported-by: Jiri Pirko <jiri@nvidia.com>
Link: https://patch.msgid.link/20260325-fix-mlx4-external-umem-v1-1-1c7c0e779329@nvidia.com
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
This commit is contained in:
committed by
Leon Romanovsky
parent
179b320958
commit
911e5ca3e1
@@ -173,6 +173,10 @@ int mlx4_ib_create_user_cq(struct ib_cq *ibcq,
|
||||
goto err_cq;
|
||||
}
|
||||
|
||||
if (ibcq->umem &&
|
||||
(dev->dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_SW_CQ_INIT))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
buf_addr = (void *)(unsigned long)ucmd.buf_addr;
|
||||
|
||||
if (!ibcq->umem)
|
||||
|
||||
Reference in New Issue
Block a user