Lines Matching refs:iwqp

210 	struct irdma_qp *iwqp = NULL;  in irdma_process_aeq()  local
237 iwqp = rf->qp_table[info->qp_cq_id]; in irdma_process_aeq()
238 if (!iwqp) { in irdma_process_aeq()
250 irdma_qp_add_ref(&iwqp->ibqp); in irdma_process_aeq()
252 qp = &iwqp->sc_qp; in irdma_process_aeq()
253 spin_lock_irqsave(&iwqp->lock, flags); in irdma_process_aeq()
254 iwqp->hw_tcp_state = info->tcp_state; in irdma_process_aeq()
255 iwqp->hw_iwarp_state = info->iwarp_state; in irdma_process_aeq()
257 iwqp->last_aeq = info->ae_id; in irdma_process_aeq()
258 spin_unlock_irqrestore(&iwqp->lock, flags); in irdma_process_aeq()
259 ctx_info = &iwqp->ctx_info; in irdma_process_aeq()
268 cm_node = iwqp->cm_node; in irdma_process_aeq()
273 iwqp->rts_ae_rcvd = 1; in irdma_process_aeq()
274 wake_up_interruptible(&iwqp->waitq); in irdma_process_aeq()
280 if (atomic_inc_return(&iwqp->close_timer_started) == 1) { in irdma_process_aeq()
281 iwqp->hw_tcp_state = IRDMA_TCP_STATE_CLOSE_WAIT; in irdma_process_aeq()
282 if (iwqp->hw_tcp_state == IRDMA_TCP_STATE_CLOSE_WAIT && in irdma_process_aeq()
283 iwqp->ibqp_state == IB_QPS_RTS) { in irdma_process_aeq()
284 irdma_next_iw_state(iwqp, in irdma_process_aeq()
287 irdma_cm_disconn(iwqp); in irdma_process_aeq()
289 irdma_schedule_cm_timer(iwqp->cm_node, in irdma_process_aeq()
290 (struct irdma_puda_buf *)iwqp, in irdma_process_aeq()
299 irdma_cm_disconn(iwqp); in irdma_process_aeq()
303 irdma_next_iw_state(iwqp, IRDMA_QP_STATE_ERROR, 1, 0, in irdma_process_aeq()
305 irdma_cm_disconn(iwqp); in irdma_process_aeq()
308 if (atomic_read(&iwqp->close_timer_started)) in irdma_process_aeq()
310 irdma_cm_disconn(iwqp); in irdma_process_aeq()
313 if (iwqp->iwdev->vsi.tc_change_pending) { in irdma_process_aeq()
314 atomic_dec(&iwqp->sc_qp.vsi->qp_suspend_reqs); in irdma_process_aeq()
315 wake_up(&iwqp->iwdev->suspend_wq); in irdma_process_aeq()
376 irdma_sc_qp_setctx_roce(&iwqp->sc_qp, iwqp->host_ctx.va, in irdma_process_aeq()
380 irdma_cm_disconn(iwqp); in irdma_process_aeq()
388 irdma_sc_qp_setctx(&iwqp->sc_qp, iwqp->host_ctx.va, in irdma_process_aeq()
391 if (iwqp->hw_iwarp_state != IRDMA_QP_STATE_RTS && in irdma_process_aeq()
392 iwqp->hw_iwarp_state != IRDMA_QP_STATE_TERMINATE) { in irdma_process_aeq()
393 irdma_next_iw_state(iwqp, IRDMA_QP_STATE_ERROR, 1, 0, 0); in irdma_process_aeq()
394 irdma_cm_disconn(iwqp); in irdma_process_aeq()
401 irdma_qp_rem_ref(&iwqp->ibqp); in irdma_process_aeq()
2121 void irdma_next_iw_state(struct irdma_qp *iwqp, u8 state, u8 del_hash, u8 term, in irdma_next_iw_state() argument
2138 if (iwqp->sc_qp.term_flags && state == IRDMA_QP_STATE_ERROR) in irdma_next_iw_state()
2140 iwqp->hw_iwarp_state = state; in irdma_next_iw_state()
2141 irdma_hw_modify_qp(iwqp->iwdev, iwqp, &info, 0); in irdma_next_iw_state()
2142 iwqp->iwarp_state = info.next_iwarp_state; in irdma_next_iw_state()
2504 struct irdma_qp *iwqp; in irdma_hw_flush_wqes_callback() local
2510 iwqp = qp->qp_uk.back_qp; in irdma_hw_flush_wqes_callback()
2525 ibdev_err(&iwqp->iwdev->ibdev, "Flush QP[%d] failed, SQ has more work", in irdma_hw_flush_wqes_callback()
2527 irdma_ib_qp_event(iwqp, IRDMA_QP_EVENT_CATASTROPHIC); in irdma_hw_flush_wqes_callback()
2547 struct irdma_qp *iwqp = qp->qp_uk.back_qp; in irdma_hw_flush_wqes() local
2614 ibdev_err(&iwqp->iwdev->ibdev, "fatal QP event: SQ in error but not flushed, qp: %d", in irdma_hw_flush_wqes()
2615 iwqp->ibqp.qp_num); in irdma_hw_flush_wqes()
2617 irdma_ib_qp_event(iwqp, IRDMA_QP_EVENT_CATASTROPHIC); in irdma_hw_flush_wqes()
2632 iwqp->ibqp.qp_num, rf->protocol_used, iwqp->iwarp_state, in irdma_hw_flush_wqes()
2633 iwqp->ibqp_state, iwqp->last_aeq, iwqp->hw_iwarp_state, in irdma_hw_flush_wqes()
2672 void irdma_flush_wqes(struct irdma_qp *iwqp, u32 flush_mask) in irdma_flush_wqes() argument
2675 struct irdma_pci_f *rf = iwqp->iwdev->rf; in irdma_flush_wqes()
2676 u8 flush_code = iwqp->sc_qp.flush_code; in irdma_flush_wqes()
2694 iwqp->sc_qp.flush_sq = false; in irdma_flush_wqes()
2696 iwqp->sc_qp.flush_rq = false; in irdma_flush_wqes()
2699 if (info.sq && iwqp->sc_qp.sq_flush_code) in irdma_flush_wqes()
2701 if (info.rq && iwqp->sc_qp.rq_flush_code) in irdma_flush_wqes()
2704 if (!iwqp->user_mode) in irdma_flush_wqes()
2705 queue_delayed_work(iwqp->iwdev->cleanup_wq, in irdma_flush_wqes()
2706 &iwqp->dwork_flush, in irdma_flush_wqes()
2711 (void)irdma_hw_flush_wqes(rf, &iwqp->sc_qp, &info, in irdma_flush_wqes()
2713 iwqp->flush_issued = true; in irdma_flush_wqes()