aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Wise <swise@opengridcomputing.com>2014-04-09 10:40:37 -0400
committerRoland Dreier <roland@purestorage.com>2014-04-11 14:36:10 -0400
commit1d1ca9b4fdde07325d263f7a75379527b1281f52 (patch)
tree06c17021c793df97431499caaf7ed1a296b04d97
parent97df1c6736f660b58b408a60d0f7f65a64fb9d56 (diff)
RDMA/cxgb4: Fix over-dereference when terminating
Need to get the endpoint reference before calling rdma_fini(), which might fail causing us to not get the reference. Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
-rw-r--r--drivers/infiniband/hw/cxgb4/qp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/cxgb4/qp.c b/drivers/infiniband/hw/cxgb4/qp.c
index 5a7d368aa47a..7b5114cb486f 100644
--- a/drivers/infiniband/hw/cxgb4/qp.c
+++ b/drivers/infiniband/hw/cxgb4/qp.c
@@ -1389,6 +1389,7 @@ int c4iw_modify_qp(struct c4iw_dev *rhp, struct c4iw_qp *qhp,
1389 qhp->attr.ecode = attrs->ecode; 1389 qhp->attr.ecode = attrs->ecode;
1390 ep = qhp->ep; 1390 ep = qhp->ep;
1391 disconnect = 1; 1391 disconnect = 1;
1392 c4iw_get_ep(&qhp->ep->com);
1392 if (!internal) 1393 if (!internal)
1393 terminate = 1; 1394 terminate = 1;
1394 else { 1395 else {
@@ -1396,7 +1397,6 @@ int c4iw_modify_qp(struct c4iw_dev *rhp, struct c4iw_qp *qhp,
1396 if (ret) 1397 if (ret)
1397 goto err; 1398 goto err;
1398 } 1399 }
1399 c4iw_get_ep(&qhp->ep->com);
1400 break; 1400 break;
1401 case C4IW_QP_STATE_ERROR: 1401 case C4IW_QP_STATE_ERROR:
1402 t4_set_wq_in_error(&qhp->wq); 1402 t4_set_wq_in_error(&qhp->wq);