aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDennis Dalessandro <dennis.dalessandro@intel.com>2016-01-19 14:43:50 -0800
committerDoug Ledford <dledford@redhat.com>2016-03-10 20:37:43 -0500
commit75261cc6ab663e0d44f6f5a02a46d3e197cbe639 (patch)
treecdda12b76113409d5398a9df27f7e5a7dbd29416 /drivers
parentstaging/rdma/hfi1: Remove modify queue pair from hfi1 (diff)
downloadlinux-dev-75261cc6ab663e0d44f6f5a02a46d3e197cbe639.tar.xz
linux-dev-75261cc6ab663e0d44f6f5a02a46d3e197cbe639.zip
staging/rdma/hfi1: Remove destroy qp verb
This removes the destroy qp verbs in favor of using rdmavt. Reviewed-by: Harish Chegondi <harish.chegondi@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/rdma/hfi1/qp.c53
-rw-r--r--drivers/staging/rdma/hfi1/qp.h11
-rw-r--r--drivers/staging/rdma/hfi1/verbs.c2
3 files changed, 1 insertions, 65 deletions
diff --git a/drivers/staging/rdma/hfi1/qp.c b/drivers/staging/rdma/hfi1/qp.c
index 1e6ca4fb7925..c9f246740b25 100644
--- a/drivers/staging/rdma/hfi1/qp.c
+++ b/drivers/staging/rdma/hfi1/qp.c
@@ -332,59 +332,6 @@ __be32 hfi1_compute_aeth(struct rvt_qp *qp)
}
/**
- * hfi1_destroy_qp - destroy a queue pair
- * @ibqp: the queue pair to destroy
- *
- * Returns 0 on success.
- *
- * Note that this can be called while the QP is actively sending or
- * receiving!
- */
-int hfi1_destroy_qp(struct ib_qp *ibqp)
-{
- struct rvt_qp *qp = ibqp_to_rvtqp(ibqp);
- struct hfi1_ibdev *dev = to_idev(ibqp->device);
- struct hfi1_qp_priv *priv = qp->priv;
-
- /* Make sure HW and driver activity is stopped. */
- spin_lock_irq(&qp->r_lock);
- spin_lock(&qp->s_lock);
- if (qp->state != IB_QPS_RESET) {
- qp->state = IB_QPS_RESET;
- flush_iowait(qp);
- qp->s_flags &= ~(RVT_S_TIMER | RVT_S_ANY_WAIT);
- spin_unlock(&qp->s_lock);
- spin_unlock_irq(&qp->r_lock);
- cancel_work_sync(&priv->s_iowait.iowork);
- del_timer_sync(&qp->s_timer);
- iowait_sdma_drain(&priv->s_iowait);
- flush_tx_list(qp);
- rvt_remove_qp(ib_to_rvt(ibqp->device), qp);
- wait_event(qp->wait, !atomic_read(&qp->refcount));
- spin_lock_irq(&qp->r_lock);
- spin_lock(&qp->s_lock);
- rvt_clear_mr_refs(qp, 1);
- clear_ahg(qp);
- }
- spin_unlock(&qp->s_lock);
- spin_unlock_irq(&qp->r_lock);
-
- /* all user's cleaned up, mark it available */
- rvt_free_qpn(&dev->rdi.qp_dev->qpn_table, qp->ibqp.qp_num);
- rvt_dec_qp_cnt(&dev->rdi);
-
- if (qp->ip)
- kref_put(&qp->ip->ref, rvt_release_mmap_info);
- else
- vfree(qp->r_rq.wq);
- vfree(qp->s_wq);
- kfree(priv->s_hdr);
- kfree(priv);
- kfree(qp);
- return 0;
-}
-
-/**
* hfi1_get_credit - flush the send work queue of a QP
* @qp: the qp who's send work queue to flush
* @aeth: the Acknowledge Extended Transport Header
diff --git a/drivers/staging/rdma/hfi1/qp.h b/drivers/staging/rdma/hfi1/qp.h
index d6bfb987b830..21af3adbf3e3 100644
--- a/drivers/staging/rdma/hfi1/qp.h
+++ b/drivers/staging/rdma/hfi1/qp.h
@@ -96,17 +96,6 @@ struct ib_qp *hfi1_create_qp(struct ib_pd *ibpd,
struct ib_qp_init_attr *init_attr,
struct ib_udata *udata);
/**
- * hfi1_destroy_qp - destroy a queue pair
- * @ibqp: the queue pair to destroy
- *
- * Returns 0 on success.
- *
- * Note that this can be called while the QP is actively sending or
- * receiving!
- */
-int hfi1_destroy_qp(struct ib_qp *ibqp);
-
-/**
* hfi1_get_credit - flush the send work queue of a QP
* @qp: the qp who's send work queue to flush
* @aeth: the Acknowledge Extended Transport Header
diff --git a/drivers/staging/rdma/hfi1/verbs.c b/drivers/staging/rdma/hfi1/verbs.c
index e51f8270553d..1ed1f20e1ab3 100644
--- a/drivers/staging/rdma/hfi1/verbs.c
+++ b/drivers/staging/rdma/hfi1/verbs.c
@@ -1625,7 +1625,7 @@ int hfi1_register_ib_device(struct hfi1_devdata *dd)
ibdev->create_qp = NULL;
ibdev->modify_qp = NULL;
ibdev->query_qp = hfi1_query_qp;
- ibdev->destroy_qp = hfi1_destroy_qp;
+ ibdev->destroy_qp = NULL;
ibdev->post_send = NULL;
ibdev->post_recv = post_receive;
ibdev->post_srq_recv = hfi1_post_srq_receive;