From: Leon Romanovsky <[email protected]>

The CQ resize operation is a uverbs-only interface and is not required for
kernel-created CQs. Drop this unused functionality.

Signed-off-by: Leon Romanovsky <[email protected]>
---
 drivers/infiniband/hw/mthca/mthca_provider.c | 102 ++-------------------------
 1 file changed, 6 insertions(+), 96 deletions(-)

diff --git a/drivers/infiniband/hw/mthca/mthca_provider.c 
b/drivers/infiniband/hw/mthca/mthca_provider.c
index 8920deceea73..fd306a229318 100644
--- a/drivers/infiniband/hw/mthca/mthca_provider.c
+++ b/drivers/infiniband/hw/mthca/mthca_provider.c
@@ -626,8 +626,6 @@ static int mthca_create_user_cq(struct ib_cq *ibcq,
                goto err_unmap_arm;
        }
 
-       cq->resize_buf = NULL;
-
        return 0;
 
 err_unmap_arm:
@@ -667,53 +665,6 @@ static int mthca_create_cq(struct ib_cq *ibcq,
        if (err)
                return err;
 
-       cq->resize_buf = NULL;
-
-       return 0;
-}
-
-static int mthca_alloc_resize_buf(struct mthca_dev *dev, struct mthca_cq *cq,
-                                 int entries)
-{
-       int ret;
-
-       spin_lock_irq(&cq->lock);
-       if (cq->resize_buf) {
-               ret = -EBUSY;
-               goto unlock;
-       }
-
-       cq->resize_buf = kmalloc(sizeof *cq->resize_buf, GFP_ATOMIC);
-       if (!cq->resize_buf) {
-               ret = -ENOMEM;
-               goto unlock;
-       }
-
-       cq->resize_buf->state = CQ_RESIZE_ALLOC;
-
-       ret = 0;
-
-unlock:
-       spin_unlock_irq(&cq->lock);
-
-       if (ret)
-               return ret;
-
-       ret = mthca_alloc_cq_buf(dev, &cq->resize_buf->buf, entries);
-       if (ret) {
-               spin_lock_irq(&cq->lock);
-               kfree(cq->resize_buf);
-               cq->resize_buf = NULL;
-               spin_unlock_irq(&cq->lock);
-               return ret;
-       }
-
-       cq->resize_buf->cqe = entries - 1;
-
-       spin_lock_irq(&cq->lock);
-       cq->resize_buf->state = CQ_RESIZE_READY;
-       spin_unlock_irq(&cq->lock);
-
        return 0;
 }
 
@@ -736,60 +687,19 @@ static int mthca_resize_cq(struct ib_cq *ibcq, int 
entries, struct ib_udata *uda
                goto out;
        }
 
-       if (cq->is_kernel) {
-               ret = mthca_alloc_resize_buf(dev, cq, entries);
-               if (ret)
-                       goto out;
-               lkey = cq->resize_buf->buf.mr.ibmr.lkey;
-       } else {
-               if (ib_copy_from_udata(&ucmd, udata, sizeof ucmd)) {
-                       ret = -EFAULT;
-                       goto out;
-               }
-               lkey = ucmd.lkey;
+       if (ib_copy_from_udata(&ucmd, udata, sizeof ucmd)) {
+               ret = -EFAULT;
+               goto out;
        }
+       lkey = ucmd.lkey;
 
        ret = mthca_RESIZE_CQ(dev, cq->cqn, lkey, ilog2(entries));
-
-       if (ret) {
-               if (cq->resize_buf) {
-                       mthca_free_cq_buf(dev, &cq->resize_buf->buf,
-                                         cq->resize_buf->cqe);
-                       kfree(cq->resize_buf);
-                       spin_lock_irq(&cq->lock);
-                       cq->resize_buf = NULL;
-                       spin_unlock_irq(&cq->lock);
-               }
+       if (ret)
                goto out;
-       }
-
-       if (cq->is_kernel) {
-               struct mthca_cq_buf tbuf;
-               int tcqe;
-
-               spin_lock_irq(&cq->lock);
-               if (cq->resize_buf->state == CQ_RESIZE_READY) {
-                       mthca_cq_resize_copy_cqes(cq);
-                       tbuf         = cq->buf;
-                       tcqe         = cq->ibcq.cqe;
-                       cq->buf      = cq->resize_buf->buf;
-                       cq->ibcq.cqe = cq->resize_buf->cqe;
-               } else {
-                       tbuf = cq->resize_buf->buf;
-                       tcqe = cq->resize_buf->cqe;
-               }
-
-               kfree(cq->resize_buf);
-               cq->resize_buf = NULL;
-               spin_unlock_irq(&cq->lock);
-
-               mthca_free_cq_buf(dev, &tbuf, tcqe);
-       } else
-               ibcq->cqe = entries - 1;
 
+       ibcq->cqe = entries - 1;
 out:
        mutex_unlock(&cq->mutex);
-
        return ret;
 }
 

-- 
2.52.0


Reply via email to