aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/mlx5/cq.c
diff options
context:
space:
mode:
authorEli Cohen <eli@dev.mellanox.co.il>2013-10-23 09:53:13 +0300
committerRoland Dreier <roland@purestorage.com>2013-11-08 14:42:58 -0800
commit51ee86a4af639e4ee8953dd02ad8a766c40f46a1 (patch)
tree4cc3e7d5e75a5ae0e35682a340effe5ee6d278f0 /drivers/infiniband/hw/mlx5/cq.c
parentLinux 3.12-rc7 (diff)
downloadlinux-dev-51ee86a4af639e4ee8953dd02ad8a766c40f46a1.tar.xz
linux-dev-51ee86a4af639e4ee8953dd02ad8a766c40f46a1.zip
IB/mlx5: Fix check of number of entries in create CQ
Verify that the value is non negative before rounding up to power of 2. Signed-off-by: Eli Cohen <eli@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/mlx5/cq.c')
-rw-r--r--drivers/infiniband/hw/mlx5/cq.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/mlx5/cq.c b/drivers/infiniband/hw/mlx5/cq.c
index 344ab03948a3..e7c64c57d699 100644
--- a/drivers/infiniband/hw/mlx5/cq.c
+++ b/drivers/infiniband/hw/mlx5/cq.c
@@ -653,8 +653,11 @@ struct ib_cq *mlx5_ib_create_cq(struct ib_device *ibdev, int entries,
int eqn;
int err;
+ if (entries < 0)
+ return ERR_PTR(-EINVAL);
+
entries = roundup_pow_of_two(entries + 1);
- if (entries < 1 || entries > dev->mdev.caps.max_cqes)
+ if (entries > dev->mdev.caps.max_cqes)
return ERR_PTR(-EINVAL);
cq = kzalloc(sizeof(*cq), GFP_KERNEL);