Lines Matching refs:iwqp

219 	struct irdma_qp *iwqp = NULL;  in irdma_process_aeq()  local
246 iwqp = rf->qp_table[info->qp_cq_id]; in irdma_process_aeq()
247 if (!iwqp) { in irdma_process_aeq()
259 irdma_qp_add_ref(&iwqp->ibqp); in irdma_process_aeq()
261 qp = &iwqp->sc_qp; in irdma_process_aeq()
262 spin_lock_irqsave(&iwqp->lock, flags); in irdma_process_aeq()
263 iwqp->hw_tcp_state = info->tcp_state; in irdma_process_aeq()
264 iwqp->hw_iwarp_state = info->iwarp_state; in irdma_process_aeq()
266 iwqp->last_aeq = info->ae_id; in irdma_process_aeq()
267 spin_unlock_irqrestore(&iwqp->lock, flags); in irdma_process_aeq()
268 ctx_info = &iwqp->ctx_info; in irdma_process_aeq()
277 cm_node = iwqp->cm_node; in irdma_process_aeq()
282 iwqp->rts_ae_rcvd = 1; in irdma_process_aeq()
283 wake_up_interruptible(&iwqp->waitq); in irdma_process_aeq()
289 if (atomic_inc_return(&iwqp->close_timer_started) == 1) { in irdma_process_aeq()
290 iwqp->hw_tcp_state = IRDMA_TCP_STATE_CLOSE_WAIT; in irdma_process_aeq()
291 if (iwqp->hw_tcp_state == IRDMA_TCP_STATE_CLOSE_WAIT && in irdma_process_aeq()
292 iwqp->ibqp_state == IB_QPS_RTS) { in irdma_process_aeq()
293 irdma_next_iw_state(iwqp, in irdma_process_aeq()
296 irdma_cm_disconn(iwqp); in irdma_process_aeq()
298 irdma_schedule_cm_timer(iwqp->cm_node, in irdma_process_aeq()
299 (struct irdma_puda_buf *)iwqp, in irdma_process_aeq()
308 irdma_cm_disconn(iwqp); in irdma_process_aeq()
312 irdma_next_iw_state(iwqp, IRDMA_QP_STATE_ERROR, 1, 0, in irdma_process_aeq()
314 irdma_cm_disconn(iwqp); in irdma_process_aeq()
317 if (atomic_read(&iwqp->close_timer_started)) in irdma_process_aeq()
319 irdma_cm_disconn(iwqp); in irdma_process_aeq()
322 if (iwqp->iwdev->vsi.tc_change_pending) { in irdma_process_aeq()
323 atomic_dec(&iwqp->sc_qp.vsi->qp_suspend_reqs); in irdma_process_aeq()
324 wake_up(&iwqp->iwdev->suspend_wq); in irdma_process_aeq()
385 irdma_sc_qp_setctx_roce(&iwqp->sc_qp, iwqp->host_ctx.va, in irdma_process_aeq()
389 irdma_cm_disconn(iwqp); in irdma_process_aeq()
397 irdma_sc_qp_setctx(&iwqp->sc_qp, iwqp->host_ctx.va, in irdma_process_aeq()
400 if (iwqp->hw_iwarp_state != IRDMA_QP_STATE_RTS && in irdma_process_aeq()
401 iwqp->hw_iwarp_state != IRDMA_QP_STATE_TERMINATE) { in irdma_process_aeq()
402 irdma_next_iw_state(iwqp, IRDMA_QP_STATE_ERROR, 1, 0, 0); in irdma_process_aeq()
403 irdma_cm_disconn(iwqp); in irdma_process_aeq()
410 irdma_qp_rem_ref(&iwqp->ibqp); in irdma_process_aeq()
2128 void irdma_next_iw_state(struct irdma_qp *iwqp, u8 state, u8 del_hash, u8 term, in irdma_next_iw_state() argument
2145 if (iwqp->sc_qp.term_flags && state == IRDMA_QP_STATE_ERROR) in irdma_next_iw_state()
2147 iwqp->hw_iwarp_state = state; in irdma_next_iw_state()
2148 irdma_hw_modify_qp(iwqp->iwdev, iwqp, &info, 0); in irdma_next_iw_state()
2149 iwqp->iwarp_state = info.next_iwarp_state; in irdma_next_iw_state()
2511 struct irdma_qp *iwqp; in irdma_hw_flush_wqes_callback() local
2517 iwqp = qp->qp_uk.back_qp; in irdma_hw_flush_wqes_callback()
2532 ibdev_err(&iwqp->iwdev->ibdev, "Flush QP[%d] failed, SQ has more work", in irdma_hw_flush_wqes_callback()
2534 irdma_ib_qp_event(iwqp, IRDMA_QP_EVENT_CATASTROPHIC); in irdma_hw_flush_wqes_callback()
2554 struct irdma_qp *iwqp = qp->qp_uk.back_qp; in irdma_hw_flush_wqes() local
2621 ibdev_err(&iwqp->iwdev->ibdev, "fatal QP event: SQ in error but not flushed, qp: %d", in irdma_hw_flush_wqes()
2622 iwqp->ibqp.qp_num); in irdma_hw_flush_wqes()
2624 irdma_ib_qp_event(iwqp, IRDMA_QP_EVENT_CATASTROPHIC); in irdma_hw_flush_wqes()
2639 iwqp->ibqp.qp_num, rf->protocol_used, iwqp->iwarp_state, in irdma_hw_flush_wqes()
2640 iwqp->ibqp_state, iwqp->last_aeq, iwqp->hw_iwarp_state, in irdma_hw_flush_wqes()
2679 void irdma_flush_wqes(struct irdma_qp *iwqp, u32 flush_mask) in irdma_flush_wqes() argument
2682 struct irdma_pci_f *rf = iwqp->iwdev->rf; in irdma_flush_wqes()
2683 u8 flush_code = iwqp->sc_qp.flush_code; in irdma_flush_wqes()
2701 iwqp->sc_qp.flush_sq = false; in irdma_flush_wqes()
2703 iwqp->sc_qp.flush_rq = false; in irdma_flush_wqes()
2706 if (info.sq && iwqp->sc_qp.sq_flush_code) in irdma_flush_wqes()
2708 if (info.rq && iwqp->sc_qp.rq_flush_code) in irdma_flush_wqes()
2711 if (!iwqp->user_mode) in irdma_flush_wqes()
2712 queue_delayed_work(iwqp->iwdev->cleanup_wq, in irdma_flush_wqes()
2713 &iwqp->dwork_flush, in irdma_flush_wqes()
2718 (void)irdma_hw_flush_wqes(rf, &iwqp->sc_qp, &info, in irdma_flush_wqes()
2720 iwqp->flush_issued = true; in irdma_flush_wqes()