diff options
author | Kalderon, Michal <Michal.Kalderon@cavium.com> | 2017-07-26 14:41:56 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2017-08-18 12:27:14 -0400 |
commit | e411e0587e0ddb6dae69944fac72f5d15ca89507 (patch) | |
tree | 5af71abee392ce7c71327b8da5d83b841689cb1a /drivers/infiniband/hw/qedr/verbs.c | |
parent | de0089e692a92ce5180eec6a79f1f79153e3c669 (diff) | |
download | op-kernel-dev-e411e0587e0ddb6dae69944fac72f5d15ca89507.zip op-kernel-dev-e411e0587e0ddb6dae69944fac72f5d15ca89507.tar.gz |
RDMA/qedr: Add iWARP connection management functions
Implements the iWARP connection management functions:
connect, accept, create listener and destroy listener
Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>
Signed-off-by: Ram Amrani <Ram.Amrani@cavium.com>
Signed-off-by: Ariel Elior <Ariel.Elior@cavium.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/hw/qedr/verbs.c')
-rw-r--r-- | drivers/infiniband/hw/qedr/verbs.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c index 2d8d031..1e8799c 100644 --- a/drivers/infiniband/hw/qedr/verbs.c +++ b/drivers/infiniband/hw/qedr/verbs.c @@ -2257,6 +2257,23 @@ int qedr_destroy_qp(struct ib_qp *ibqp) /* Change the QP state to ERROR */ qedr_modify_qp(ibqp, &attr, attr_mask, NULL); } + } else { + /* Wait for the connect/accept to complete */ + if (qp->ep) { + int wait_count = 1; + + while (qp->ep->during_connect) { + DP_DEBUG(dev, QEDR_MSG_QP, + "Still in during connect/accept\n"); + + msleep(100); + if (wait_count++ > 200) { + DP_NOTICE(dev, + "during connect timeout\n"); + break; + } + } + } } if (qp->qp_type == IB_QPT_GSI) |