aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sunrpc/xprtrdma/verbs.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c
index d94f379f36d7..a63d0c0ec017 100644
--- a/net/sunrpc/xprtrdma/verbs.c
+++ b/net/sunrpc/xprtrdma/verbs.c
@@ -338,10 +338,8 @@ connected:
338 wake_up_all(&ep->rep_connect_wait); 338 wake_up_all(&ep->rep_connect_wait);
339 break; 339 break;
340 default: 340 default:
341 ia->ri_async_rc = -EINVAL; 341 dprintk("RPC: %s: unexpected CM event %d\n",
342 dprintk("RPC: %s: unexpected CM event %X\n",
343 __func__, event->event); 342 __func__, event->event);
344 complete(&ia->ri_done);
345 break; 343 break;
346 } 344 }
347 345
@@ -355,6 +353,8 @@ rpcrdma_create_id(struct rpcrdma_xprt *xprt,
355 struct rdma_cm_id *id; 353 struct rdma_cm_id *id;
356 int rc; 354 int rc;
357 355
356 init_completion(&ia->ri_done);
357
358 id = rdma_create_id(rpcrdma_conn_upcall, xprt, RDMA_PS_TCP); 358 id = rdma_create_id(rpcrdma_conn_upcall, xprt, RDMA_PS_TCP);
359 if (IS_ERR(id)) { 359 if (IS_ERR(id)) {
360 rc = PTR_ERR(id); 360 rc = PTR_ERR(id);
@@ -427,8 +427,6 @@ rpcrdma_ia_open(struct rpcrdma_xprt *xprt, struct sockaddr *addr, int memreg)
427 struct ib_device_attr devattr; 427 struct ib_device_attr devattr;
428 struct rpcrdma_ia *ia = &xprt->rx_ia; 428 struct rpcrdma_ia *ia = &xprt->rx_ia;
429 429
430 init_completion(&ia->ri_done);
431
432 ia->ri_id = rpcrdma_create_id(xprt, ia, addr); 430 ia->ri_id = rpcrdma_create_id(xprt, ia, addr);
433 if (IS_ERR(ia->ri_id)) { 431 if (IS_ERR(ia->ri_id)) {
434 rc = PTR_ERR(ia->ri_id); 432 rc = PTR_ERR(ia->ri_id);
@@ -815,6 +813,7 @@ retry:
815 goto out; 813 goto out;
816 } 814 }
817 /* END TEMP */ 815 /* END TEMP */
816 rdma_destroy_qp(ia->ri_id);
818 rdma_destroy_id(ia->ri_id); 817 rdma_destroy_id(ia->ri_id);
819 ia->ri_id = id; 818 ia->ri_id = id;
820 } 819 }