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