summaryrefslogtreecommitdiff
path: root/drivers/infiniband/hw/mlx5/dm.c
diff options
context:
space:
mode:
authorMaor Gottlieb <maorg@nvidia.com>2021-05-11 08:48:27 +0300
committerJason Gunthorpe <jgg@nvidia.com>2021-05-17 19:52:47 +0300
commit6863b4d7bf19a54e23fc5838b7e66d954444289d (patch)
tree71ec163c28d388688d66f75d1ebd6701e14b699e /drivers/infiniband/hw/mlx5/dm.c
parent67f29896fdc83298eed5a6576ff8f9873f709228 (diff)
downloadlinux-6863b4d7bf19a54e23fc5838b7e66d954444289d.tar.xz
RDMA/mlx5: Verify that DM operation is reasonable
Fix the complaint from smatch by verifing that the user requested DM operation is not greater than 31. divers/infiniband/hw/mlx5/dm.c:220 mlx5_ib_handler_MLX5_IB_METHOD_DM_MAP_OP_ADDR() error: undefined (user controlled) shift '(((1))) << op' Fixes: cea85fa5dbc2 ("RDMA/mlx5: Add support in MEMIC operations") Link: https://lore.kernel.org/r/458b1d7710c3cf01360c8771893f483665569786.1620711734.git.leonro@nvidia.com Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Maor Gottlieb <maorg@nvidia.com> Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Diffstat (limited to 'drivers/infiniband/hw/mlx5/dm.c')
-rw-r--r--drivers/infiniband/hw/mlx5/dm.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/mlx5/dm.c b/drivers/infiniband/hw/mlx5/dm.c
index 094bf85589db..001d766cf291 100644
--- a/drivers/infiniband/hw/mlx5/dm.c
+++ b/drivers/infiniband/hw/mlx5/dm.c
@@ -217,6 +217,9 @@ static int UVERBS_HANDLER(MLX5_IB_METHOD_DM_MAP_OP_ADDR)(
if (err)
return err;
+ if (op >= BITS_PER_TYPE(u32))
+ return -EOPNOTSUPP;
+
if (!(MLX5_CAP_DEV_MEM(dev->mdev, memic_operations) & BIT(op)))
return -EOPNOTSUPP;