IB/mlx4: Fix device max capabilities check
authorEli Cohen <eli@dev.mellanox.co.il>
Thu, 31 Oct 2013 13:26:34 +0000 (15:26 +0200)
committerRoland Dreier <roland@purestorage.com>
Fri, 15 Nov 2013 22:36:36 +0000 (14:36 -0800)
Move the check on max supported CQEs after the final number of entries is
evaluated.

Signed-off-by: Eli Cohen <eli@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/mlx4/cq.c

index d5e60f44ba5ad7c4f5ad53d7e0fe348248ed797b..ea299515ecb24170a6b3f49a15b32616cd35e270 100644 (file)
@@ -365,7 +365,7 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
 
        mutex_lock(&cq->resize_mutex);
 
-       if (entries < 1 || entries > dev->dev->caps.max_cqes) {
+       if (entries < 1) {
                err = -EINVAL;
                goto out;
        }
@@ -376,6 +376,11 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
                goto out;
        }
 
+       if (entries > dev->dev->caps.max_cqes) {
+               err = -EINVAL;
+               goto out;
+       }
+
        if (ibcq->uobject) {
                err = mlx4_alloc_resize_umem(dev, cq, entries, udata);
                if (err)