Lines Matching refs:iwqp

739 	struct irdma_qp *iwqp = (struct irdma_qp *)ibqp;  in irdma_qp_add_ref()  local
741 refcount_inc(&iwqp->refcnt); in irdma_qp_add_ref()
746 struct irdma_qp *iwqp = to_iwqp(ibqp); in irdma_qp_rem_ref() local
747 struct irdma_device *iwdev = iwqp->iwdev; in irdma_qp_rem_ref()
752 if (!refcount_dec_and_test(&iwqp->refcnt)) { in irdma_qp_rem_ref()
757 qp_num = iwqp->ibqp.qp_num; in irdma_qp_rem_ref()
760 complete(&iwqp->free_qp); in irdma_qp_rem_ref()
873 struct irdma_qp *iwqp; in irdma_term_modify_qp() local
875 iwqp = qp->qp_uk.back_qp; in irdma_term_modify_qp()
876 irdma_next_iw_state(iwqp, next_state, 0, term, term_len); in irdma_term_modify_qp()
886 struct irdma_qp *iwqp; in irdma_terminate_done() local
891 iwqp = qp->qp_uk.back_qp; in irdma_terminate_done()
892 spin_lock_irqsave(&iwqp->lock, flags); in irdma_terminate_done()
893 if (iwqp->hte_added) { in irdma_terminate_done()
894 iwqp->hte_added = 0; in irdma_terminate_done()
899 spin_unlock_irqrestore(&iwqp->lock, flags); in irdma_terminate_done()
904 irdma_next_iw_state(iwqp, IRDMA_QP_STATE_ERROR, hte, 0, 0); in irdma_terminate_done()
905 irdma_cm_disconn(iwqp); in irdma_terminate_done()
911 struct irdma_qp *iwqp = from_timer(iwqp, t, terminate_timer); in irdma_terminate_timeout() local
912 struct irdma_sc_qp *qp = &iwqp->sc_qp; in irdma_terminate_timeout()
915 irdma_qp_rem_ref(&iwqp->ibqp); in irdma_terminate_timeout()
924 struct irdma_qp *iwqp; in irdma_terminate_start_timer() local
926 iwqp = qp->qp_uk.back_qp; in irdma_terminate_start_timer()
927 irdma_qp_add_ref(&iwqp->ibqp); in irdma_terminate_start_timer()
928 timer_setup(&iwqp->terminate_timer, irdma_terminate_timeout, 0); in irdma_terminate_start_timer()
929 iwqp->terminate_timer.expires = jiffies + HZ; in irdma_terminate_start_timer()
931 add_timer(&iwqp->terminate_timer); in irdma_terminate_start_timer()
940 struct irdma_qp *iwqp; in irdma_terminate_del_timer() local
943 iwqp = qp->qp_uk.back_qp; in irdma_terminate_del_timer()
944 ret = del_timer(&iwqp->terminate_timer); in irdma_terminate_del_timer()
946 irdma_qp_rem_ref(&iwqp->ibqp); in irdma_terminate_del_timer()
1118 void irdma_free_qp_rsrc(struct irdma_qp *iwqp) in irdma_free_qp_rsrc() argument
1120 struct irdma_device *iwdev = iwqp->iwdev; in irdma_free_qp_rsrc()
1122 u32 qp_num = iwqp->ibqp.qp_num; in irdma_free_qp_rsrc()
1124 irdma_ieq_cleanup_qp(iwdev->vsi.ieq, &iwqp->sc_qp); in irdma_free_qp_rsrc()
1125 irdma_dealloc_push_page(rf, &iwqp->sc_qp); in irdma_free_qp_rsrc()
1126 if (iwqp->sc_qp.vsi) { in irdma_free_qp_rsrc()
1127 irdma_qp_rem_qos(&iwqp->sc_qp); in irdma_free_qp_rsrc()
1128 iwqp->sc_qp.dev->ws_remove(iwqp->sc_qp.vsi, in irdma_free_qp_rsrc()
1129 iwqp->sc_qp.user_pri); in irdma_free_qp_rsrc()
1134 dma_free_coherent(rf->sc_dev.hw->device, iwqp->q2_ctx_mem.size, in irdma_free_qp_rsrc()
1135 iwqp->q2_ctx_mem.va, iwqp->q2_ctx_mem.pa); in irdma_free_qp_rsrc()
1136 iwqp->q2_ctx_mem.va = NULL; in irdma_free_qp_rsrc()
1137 dma_free_coherent(rf->sc_dev.hw->device, iwqp->kqp.dma_mem.size, in irdma_free_qp_rsrc()
1138 iwqp->kqp.dma_mem.va, iwqp->kqp.dma_mem.pa); in irdma_free_qp_rsrc()
1139 iwqp->kqp.dma_mem.va = NULL; in irdma_free_qp_rsrc()
1140 kfree(iwqp->kqp.sq_wrid_mem); in irdma_free_qp_rsrc()
1141 kfree(iwqp->kqp.rq_wrid_mem); in irdma_free_qp_rsrc()
1175 struct irdma_qp *iwqp; in irdma_hw_modify_qp_callback() local
1178 iwqp = cqp_info->in.u.qp_modify.qp->qp_uk.back_qp; in irdma_hw_modify_qp_callback()
1179 atomic_dec(&iwqp->hw_mod_qp_pend); in irdma_hw_modify_qp_callback()
1180 wake_up(&iwqp->mod_qp_waitq); in irdma_hw_modify_qp_callback()
1190 int irdma_hw_modify_qp(struct irdma_device *iwdev, struct irdma_qp *iwqp, in irdma_hw_modify_qp() argument
1205 atomic_inc(&iwqp->hw_mod_qp_pend); in irdma_hw_modify_qp()
1212 cqp_info->in.u.qp_modify.qp = &iwqp->sc_qp; in irdma_hw_modify_qp()
1228 irdma_send_reset(iwqp->cm_node); in irdma_hw_modify_qp()
1230 iwqp->sc_qp.term_flags = IRDMA_TERM_DONE; in irdma_hw_modify_qp()
1234 irdma_gen_ae(rf, &iwqp->sc_qp, &ae_info, false); in irdma_hw_modify_qp()
1246 cqp_info->in.u.qp_modify.qp = &iwqp->sc_qp; in irdma_hw_modify_qp()
1392 struct irdma_qp *iwqp; in irdma_ieq_get_qp() local
1417 iwqp = cm_node->iwqp; in irdma_ieq_get_qp()
1420 return &iwqp->sc_qp; in irdma_ieq_get_qp()
2468 void irdma_ib_qp_event(struct irdma_qp *iwqp, enum irdma_qp_event_type event) in irdma_ib_qp_event() argument
2472 if (!iwqp->ibqp.event_handler) in irdma_ib_qp_event()
2486 ibevent.device = iwqp->ibqp.device; in irdma_ib_qp_event()
2487 ibevent.element.qp = &iwqp->ibqp; in irdma_ib_qp_event()
2488 iwqp->ibqp.event_handler(&ibevent, iwqp->ibqp.qp_context); in irdma_ib_qp_event()
2562 void irdma_generate_flush_completions(struct irdma_qp *iwqp) in irdma_generate_flush_completions() argument
2564 struct irdma_qp_uk *qp = &iwqp->sc_qp.qp_uk; in irdma_generate_flush_completions()
2574 spin_lock_irqsave(&iwqp->iwscq->lock, flags1); in irdma_generate_flush_completions()
2575 if (irdma_cq_empty(iwqp->iwscq)) { in irdma_generate_flush_completions()
2578 spin_lock_irqsave(&iwqp->lock, flags2); in irdma_generate_flush_completions()
2582 spin_unlock_irqrestore(&iwqp->lock, flags2); in irdma_generate_flush_completions()
2583 spin_unlock_irqrestore(&iwqp->iwscq->lock, flags1); in irdma_generate_flush_completions()
2599 ibdev_dbg(iwqp->iwscq->ibcq.device, in irdma_generate_flush_completions()
2602 list_add_tail(&cmpl->list, &iwqp->iwscq->cmpl_generated); in irdma_generate_flush_completions()
2605 spin_unlock_irqrestore(&iwqp->lock, flags2); in irdma_generate_flush_completions()
2606 spin_unlock_irqrestore(&iwqp->iwscq->lock, flags1); in irdma_generate_flush_completions()
2608 irdma_comp_handler(iwqp->iwscq); in irdma_generate_flush_completions()
2610 spin_unlock_irqrestore(&iwqp->iwscq->lock, flags1); in irdma_generate_flush_completions()
2611 mod_delayed_work(iwqp->iwdev->cleanup_wq, &iwqp->dwork_flush, in irdma_generate_flush_completions()
2615 spin_lock_irqsave(&iwqp->iwrcq->lock, flags1); in irdma_generate_flush_completions()
2616 if (irdma_cq_empty(iwqp->iwrcq)) { in irdma_generate_flush_completions()
2619 spin_lock_irqsave(&iwqp->lock, flags2); in irdma_generate_flush_completions()
2623 spin_unlock_irqrestore(&iwqp->lock, flags2); in irdma_generate_flush_completions()
2624 spin_unlock_irqrestore(&iwqp->iwrcq->lock, flags1); in irdma_generate_flush_completions()
2636 ibdev_dbg(iwqp->iwrcq->ibcq.device, in irdma_generate_flush_completions()
2640 list_add_tail(&cmpl->list, &iwqp->iwrcq->cmpl_generated); in irdma_generate_flush_completions()
2644 spin_unlock_irqrestore(&iwqp->lock, flags2); in irdma_generate_flush_completions()
2645 spin_unlock_irqrestore(&iwqp->iwrcq->lock, flags1); in irdma_generate_flush_completions()
2647 irdma_comp_handler(iwqp->iwrcq); in irdma_generate_flush_completions()
2649 spin_unlock_irqrestore(&iwqp->iwrcq->lock, flags1); in irdma_generate_flush_completions()
2650 mod_delayed_work(iwqp->iwdev->cleanup_wq, &iwqp->dwork_flush, in irdma_generate_flush_completions()