All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/6]  SRP recreates qp/cq resources at reconnecting to target
@ 2009-11-09 21:31 Vu Pham
  0 siblings, 0 replies; only message in thread
From: Vu Pham @ 2009-11-09 21:31 UTC (permalink / raw)
  To: Linux RDMA list; +Cc: Roland Dreier

[-- Attachment #1: Type: text/plain, Size: 204 bytes --]

Recreating qp, cq when reconnect to target instead of re-use them.
We need this so that we don't have to wait on disconnect connection

Signed-of-by: Vu Pham <vu-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>


[-- Attachment #2: srp_1_recreate_res_at_reconnect.patch --]
[-- Type: text/plain, Size: 1397 bytes --]

 drivers/infiniband/ulp/srp/ib_srp.c |   22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index dfa14de..e44939a 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -535,10 +535,10 @@ static void srp_reset_req(struct srp_target_port *target, struct srp_request *re
 
 static int srp_reconnect_target(struct srp_target_port *target)
 {
-	struct ib_qp_attr qp_attr;
 	struct srp_request *req, *tmp;
-	struct ib_wc wc;
 	int ret;
+	struct ib_cq *old_cq;
+	struct ib_qp *old_qp;
 
 	spin_lock_irq(target->scsi_host->host_lock);
 	if (target->state != SRP_TARGET_LIVE) {
@@ -557,17 +557,17 @@ static int srp_reconnect_target(struct srp_target_port *target)
 	if (ret)
 		goto err;
 
-	qp_attr.qp_state = IB_QPS_RESET;
-	ret = ib_modify_qp(target->qp, &qp_attr, IB_QP_STATE);
-	if (ret)
-		goto err;
-
-	ret = srp_init_qp(target, target->qp);
-	if (ret)
+	old_qp = target->qp;
+	old_cq = target->cq;
+	ret = srp_create_target_ib(target);
+	if (ret) {
+		target->qp = old_qp;
+		target->cq = old_cq;
 		goto err;
+	}
 
-	while (ib_poll_cq(target->cq, 1, &wc) > 0)
-		; /* nothing */
+	ib_destroy_qp(old_qp);
+	ib_destroy_cq(old_cq);
 
 	spin_lock_irq(target->scsi_host->host_lock);
 	list_for_each_entry_safe(req, tmp, &target->req_queue, list)

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2009-11-09 21:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-09 21:31 [PATCH 1/6] SRP recreates qp/cq resources at reconnecting to target Vu Pham

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.