aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/cxgb4
diff options
context:
space:
mode:
authorSteve Wise <swise@opengridcomputing.com>2013-08-06 21:04:40 +0530
committerRoland Dreier <roland@purestorage.com>2013-08-13 11:55:49 -0700
commit09992579bc8cc03b1f90b815b75c3ba6621ef2f8 (patch)
treec00250e545783560780b528551cd2bd28d44975e /drivers/infiniband/hw/cxgb4
parentRDMA/cxgb4: Advertise ~0ULL as max MR size (diff)
downloadlinux-dev-09992579bc8cc03b1f90b815b75c3ba6621ef2f8.tar.xz
linux-dev-09992579bc8cc03b1f90b815b75c3ba6621ef2f8.zip
RDMA/cxgb4: Issue RI.FINI before closing when entering TERM
Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Vipul Pandya <vipul@chelsio.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/cxgb4')
-rw-r--r--drivers/infiniband/hw/cxgb4/qp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/cxgb4/qp.c b/drivers/infiniband/hw/cxgb4/qp.c
index 22d1f01dd951..582936708e6e 100644
--- a/drivers/infiniband/hw/cxgb4/qp.c
+++ b/drivers/infiniband/hw/cxgb4/qp.c
@@ -1350,9 +1350,14 @@ int c4iw_modify_qp(struct c4iw_dev *rhp, struct c4iw_qp *qhp,
qhp->attr.ecode = attrs->ecode;
t4_set_wq_in_error(&qhp->wq);
ep = qhp->ep;
+ disconnect = 1;
if (!internal)
terminate = 1;
- disconnect = 1;
+ else {
+ ret = rdma_fini(rhp, qhp, ep);
+ if (ret)
+ goto err;
+ }
c4iw_get_ep(&qhp->ep->com);
break;
case C4IW_QP_STATE_ERROR: