aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTatyana Nikolova <tatyana.e.nikolova@intel.com>2016-08-24 14:59:17 -0400
committerDoug Ledford <dledford@redhat.com>2016-08-25 11:15:47 -0400
commit07c72d7d54d138eb2ca37709a5a3d55fbcc01536 (patch)
treeb2831e58342fde75ce66c83953c04295721636b8
parent3c199b4523c92dc5df027eeeffa657e2ccf453ab (diff)
i40iw: Send last streaming mode message for loopback connections
Send a zero length last streaming mode message for loopback connections to synchronize between accepting QP and connecting QP. This avoids data transfer to start on the accepting QP before the connecting QP is in RTS. Also remove function i40iw_loopback_nop() as it is no longer used. Fixes: f27b4746f378 ("i40iw: add connection management code") Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com> Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
-rw-r--r--drivers/infiniband/hw/i40iw/i40iw_cm.c22
1 files changed, 1 insertions, 21 deletions
diff --git a/drivers/infiniband/hw/i40iw/i40iw_cm.c b/drivers/infiniband/hw/i40iw/i40iw_cm.c
index 64343985e0b7..7ca0638579c0 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_cm.c
+++ b/drivers/infiniband/hw/i40iw/i40iw_cm.c
@@ -3347,26 +3347,6 @@ int i40iw_cm_disconn(struct i40iw_qp *iwqp)
3347} 3347}
3348 3348
3349/** 3349/**
3350 * i40iw_loopback_nop - Send a nop
3351 * @qp: associated hw qp
3352 */
3353static void i40iw_loopback_nop(struct i40iw_sc_qp *qp)
3354{
3355 u64 *wqe;
3356 u64 header;
3357
3358 wqe = qp->qp_uk.sq_base->elem;
3359 set_64bit_val(wqe, 0, 0);
3360 set_64bit_val(wqe, 8, 0);
3361 set_64bit_val(wqe, 16, 0);
3362
3363 header = LS_64(I40IWQP_OP_NOP, I40IWQPSQ_OPCODE) |
3364 LS_64(0, I40IWQPSQ_SIGCOMPL) |
3365 LS_64(qp->qp_uk.swqe_polarity, I40IWQPSQ_VALID);
3366 set_64bit_val(wqe, 24, header);
3367}
3368
3369/**
3370 * i40iw_qp_disconnect - free qp and close cm 3350 * i40iw_qp_disconnect - free qp and close cm
3371 * @iwqp: associate qp for the connection 3351 * @iwqp: associate qp for the connection
3372 */ 3352 */
@@ -3638,7 +3618,7 @@ int i40iw_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
3638 } else { 3618 } else {
3639 if (iwqp->page) 3619 if (iwqp->page)
3640 iwqp->sc_qp.qp_uk.sq_base = kmap(iwqp->page); 3620 iwqp->sc_qp.qp_uk.sq_base = kmap(iwqp->page);
3641 i40iw_loopback_nop(&iwqp->sc_qp); 3621 dev->iw_priv_qp_ops->qp_send_lsmm(&iwqp->sc_qp, NULL, 0, 0);
3642 } 3622 }
3643 3623
3644 if (iwqp->page) 3624 if (iwqp->page)