Lines Matching defs:iwqp
609 struct i40iw_qp *iwqp;
616 iwqp = cm_id->provider_data;
618 if (!iwqp || !iwqp->iwdev)
621 iwqp->cm_id = NULL;
1158 struct i40iw_qp *iwqp;
1163 iwqp = (struct i40iw_qp *)close_entry->sqbuf;
1164 if (iwqp) {
1165 spin_lock_irqsave(&iwqp->lock, flags);
1166 if (iwqp->cm_id) {
1167 iwqp->hw_tcp_state = I40IW_TCP_STATE_CLOSED;
1168 iwqp->hw_iwarp_state = I40IW_QP_STATE_ERROR;
1169 iwqp->last_aeq = I40IW_AE_RESET_SENT;
1170 iwqp->ibqp_state = IB_QPS_ERR;
1171 spin_unlock_irqrestore(&iwqp->lock, flags);
1172 i40iw_cm_disconn(iwqp);
1174 spin_unlock_irqrestore(&iwqp->lock, flags);
2282 struct i40iw_qp *iwqp;
2322 iwqp = cm_node->iwqp;
2323 if (iwqp) {
2324 iwqp->cm_node = NULL;
2325 i40iw_qp_rem_ref(&iwqp->ibqp);
2326 cm_node->iwqp = NULL;
3296 * @iwqp: associate qp for the connection
3300 struct i40iw_qp *iwqp)
3346 iwqp->iwdev,
3364 iwqp->iwdev,
3374 * @iwqp: associate qp for the connection
3377 static void i40iw_cm_init_tsa_conn(struct i40iw_qp *iwqp,
3383 struct i40iw_device *iwdev = iwqp->iwdev;
3384 struct i40iw_sc_dev *dev = &iwqp->iwdev->sc_dev;
3387 iwarp_info = &iwqp->iwarp_info;
3388 ctx_info = &iwqp->ctx_info;
3391 ctx_info->send_cq_num = iwqp->iwscq->sc_cq.cq_uk.cq_id;
3392 ctx_info->rcv_cq_num = iwqp->iwrcq->sc_cq.cq_uk.cq_id;
3404 iwarp_info->pd_id = iwqp->iwpd->sc_pd.pd_id;
3411 i40iw_init_tcp_ctx(cm_node, &tcp_info, iwqp);
3423 dev->iw_priv_qp_ops->qp_setctx(&iwqp->sc_qp, (u64 *)(iwqp->host_ctx.va), ctx_info);
3433 * @iwqp: associate qp for the connection
3435 void i40iw_cm_disconn(struct i40iw_qp *iwqp)
3438 struct i40iw_device *iwdev = iwqp->iwdev;
3447 if (!iwdev->qp_table[iwqp->ibqp.qp_num]) {
3451 __func__, iwqp->ibqp.qp_num);
3455 i40iw_qp_add_ref(&iwqp->ibqp);
3458 work->iwqp = iwqp;
3466 * @iwqp: associate qp for the connection
3468 static void i40iw_qp_disconnect(struct i40iw_qp *iwqp)
3473 iwdev = to_iwdev(iwqp->ibqp.device);
3481 if (iwqp->active_conn) {
3483 iwqp->active_conn = 0;
3486 if (iwqp->ietf_mem.va) {
3487 if (iwqp->lsmm_mr)
3488 iwibdev->ibdev.ops.dereg_mr(iwqp->lsmm_mr,
3490 i40iw_free_dma_mem(iwdev->sc_dev.hw, &iwqp->ietf_mem);
3495 if (iwqp->cm_node) {
3497 i40iw_cm_close(iwqp->cm_node);
3503 * @iwqp: associate qp for the connection
3505 static void i40iw_cm_disconn_true(struct i40iw_qp *iwqp)
3509 struct i40iw_sc_qp *qp = &iwqp->sc_qp;
3521 if (!iwqp) {
3522 i40iw_pr_err("iwqp == NULL\n");
3526 spin_lock_irqsave(&iwqp->lock, flags);
3527 cm_id = iwqp->cm_id;
3530 spin_unlock_irqrestore(&iwqp->lock, flags);
3534 iwdev = to_iwdev(iwqp->ibqp.device);
3536 original_hw_tcp_state = iwqp->hw_tcp_state;
3537 original_ibqp_state = iwqp->ibqp_state;
3538 last_ae = iwqp->last_aeq;
3543 iwqp->cm_id = NULL;
3549 if (!iwqp->flush_issued) {
3550 iwqp->flush_issued = 1;
3567 iwqp->cm_id = NULL;
3568 if (!iwqp->flush_issued) {
3569 iwqp->flush_issued = 1;
3574 spin_unlock_irqrestore(&iwqp->lock, flags);
3575 if (issue_flush && !iwqp->destroyed) {
3577 i40iw_flush_wqes(iwdev, iwqp);
3579 if (qp->term_flags && iwqp->ibqp.event_handler) {
3580 ibevent.device = iwqp->ibqp.device;
3583 ibevent.element.qp = &iwqp->ibqp;
3584 iwqp->ibqp.event_handler(&ibevent, iwqp->ibqp.qp_context);
3602 i40iw_qp_disconnect(iwqp);
3603 cm_id->provider_data = iwqp;
3622 struct i40iw_qp *iwqp = dwork->iwqp;
3625 i40iw_cm_disconn_true(iwqp);
3626 i40iw_qp_rem_ref(&iwqp->ibqp);
3637 struct i40iw_qp *iwqp;
3657 iwqp = to_iwqp(ibqp);
3658 iwdev = iwqp->iwdev;
3688 iwqp->cm_node = (void *)cm_node;
3689 cm_node->iwqp = iwqp;
3693 status = i40iw_allocate_dma_mem(dev->hw, &iwqp->ietf_mem, buf_len, 1);
3698 accept.addr = iwqp->ietf_mem.va;
3708 iwpd = iwqp->iwpd;
3709 tagged_offset = (uintptr_t)iwqp->ietf_mem.va;
3711 iwqp->ietf_mem.pa,
3716 i40iw_free_dma_mem(dev->hw, &iwqp->ietf_mem);
3722 iwqp->lsmm_mr = ibmr;
3723 if (iwqp->page)
3724 iwqp->sc_qp.qp_uk.sq_base = kmap(iwqp->page);
3725 dev->iw_priv_qp_ops->qp_send_lsmm(&iwqp->sc_qp,
3726 iwqp->ietf_mem.va,
3731 if (iwqp->page)
3732 iwqp->sc_qp.qp_uk.sq_base = kmap(iwqp->page);
3733 dev->iw_priv_qp_ops->qp_send_lsmm(&iwqp->sc_qp, NULL, 0, 0);
3736 if (iwqp->page)
3737 kunmap(iwqp->page);
3739 iwqp->cm_id = cm_id;
3742 cm_id->provider_data = (void *)iwqp;
3743 iwqp->active_conn = 0;
3746 i40iw_cm_init_tsa_conn(iwqp, cm_node);
3748 i40iw_qp_add_ref(&iwqp->ibqp);
3752 i40iw_modify_qp(&iwqp->ibqp, &attr, IB_QP_STATE, NULL);
3822 struct i40iw_qp *iwqp;
3835 iwqp = to_iwqp(ibqp);
3836 if (!iwqp)
3838 iwdev = to_iwdev(iwqp->ibqp.device);
3850 iwqp->active_conn = 1;
3851 iwqp->cm_id = NULL;
3852 cm_id->provider_data = iwqp;
3908 iwqp->cm_node = cm_node;
3909 cm_node->iwqp = iwqp;
3910 iwqp->cm_id = cm_id;
3911 i40iw_qp_add_ref(&iwqp->ibqp);
4080 struct i40iw_qp *iwqp;
4093 iwqp = (struct i40iw_qp *)cm_id->provider_data;
4094 iwdev = to_iwdev(iwqp->ibqp.device);
4098 if (iwqp->destroyed) {
4102 i40iw_cm_init_tsa_conn(iwqp, cm_node);
4104 if (iwqp->page)
4105 iwqp->sc_qp.qp_uk.sq_base = kmap(iwqp->page);
4106 dev->iw_priv_qp_ops->qp_send_rtt(&iwqp->sc_qp, read0);
4107 if (iwqp->page)
4108 kunmap(iwqp->page);
4113 i40iw_modify_qp(&iwqp->ibqp, &attr, IB_QP_STATE, NULL);
4127 iwqp->cm_id = NULL;
4145 struct i40iw_qp *iwqp;
4150 iwqp = cm_id->provider_data;
4151 if (!iwqp)
4158 iwqp->cm_id = NULL;
4351 i40iw_modify_qp(&cm_node->iwqp->ibqp, &attr, IB_QP_STATE, NULL);
4353 i40iw_cm_disconn(cm_node->iwqp);