Lines Matching refs:my_qp
400 static inline int post_one_send(struct ehca_qp *my_qp, in post_one_send() argument
407 u64 start_offset = my_qp->ipz_squeue.current_q_offset; in post_one_send()
410 wqe_p = ipz_qeit_get_inc(&my_qp->ipz_squeue); in post_one_send()
413 ehca_err(my_qp->ib_qp.device, "Too many posted WQEs " in post_one_send()
414 "qp_num=%x", my_qp->ib_qp.qp_num); in post_one_send()
422 sq_map_idx = start_offset / my_qp->ipz_squeue.qe_size; in post_one_send()
425 ret = ehca_write_swqe(my_qp, wqe_p, cur_send_wr, sq_map_idx, hidden); in post_one_send()
431 my_qp->ipz_squeue.current_q_offset = start_offset; in post_one_send()
432 ehca_err(my_qp->ib_qp.device, "Could not write WQE " in post_one_send()
433 "qp_num=%x", my_qp->ib_qp.qp_num); in post_one_send()
444 struct ehca_qp *my_qp = container_of(qp, struct ehca_qp, ib_qp); in ehca_post_send() local
450 if (unlikely(my_qp->state < IB_QPS_RTS)) { in ehca_post_send()
452 my_qp->state, qp->qp_num); in ehca_post_send()
458 spin_lock_irqsave(&my_qp->spinlock_s, flags); in ehca_post_send()
466 if (unlikely(my_qp->unsol_ack_circ && in ehca_post_send()
467 my_qp->packet_count > ACK_CIRC_THRESHOLD && in ehca_post_send()
468 my_qp->message_count > my_qp->init_attr.cap.max_send_wr)) { in ehca_post_send()
473 post_one_send(my_qp, &circ_wr, 1); /* ignore retcode */ in ehca_post_send()
476 my_qp->message_count = my_qp->packet_count = 0; in ehca_post_send()
481 ret = post_one_send(my_qp, send_wr, 0); in ehca_post_send()
491 hipz_update_sqa(my_qp, wqe_cnt); in ehca_post_send()
494 my_qp, qp->qp_num, wqe_cnt, ret); in ehca_post_send()
495 my_qp->message_count += wqe_cnt; in ehca_post_send()
496 spin_unlock_irqrestore(&my_qp->spinlock_s, flags); in ehca_post_send()
504 static int internal_post_recv(struct ehca_qp *my_qp, in internal_post_recv() argument
516 if (unlikely(!HAS_RQ(my_qp))) { in internal_post_recv()
518 my_qp, my_qp->real_qp_num, my_qp->ext_type); in internal_post_recv()
524 spin_lock_irqsave(&my_qp->spinlock_r, flags); in internal_post_recv()
528 u64 start_offset = my_qp->ipz_rqueue.current_q_offset; in internal_post_recv()
530 wqe_p = ipz_qeit_get_inc(&my_qp->ipz_rqueue); in internal_post_recv()
535 "qp_num=%x", my_qp->real_qp_num); in internal_post_recv()
542 rq_map_idx = start_offset / my_qp->ipz_rqueue.qe_size; in internal_post_recv()
545 ret = ehca_write_rwqe(&my_qp->ipz_rqueue, wqe_p, recv_wr, in internal_post_recv()
552 my_qp->ipz_rqueue.current_q_offset = start_offset; in internal_post_recv()
555 "qp_num=%x", my_qp->real_qp_num); in internal_post_recv()
559 qmap_entry = &my_qp->rq_map.map[rq_map_idx]; in internal_post_recv()
570 hipz_update_rqa(my_qp, wqe_cnt); in internal_post_recv()
573 my_qp, my_qp->real_qp_num, wqe_cnt, ret); in internal_post_recv()
574 spin_unlock_irqrestore(&my_qp->spinlock_r, flags); in internal_post_recv()
587 struct ehca_qp *my_qp = container_of(qp, struct ehca_qp, ib_qp); in ehca_post_recv() local
590 if (unlikely(my_qp->state == IB_QPS_RESET)) { in ehca_post_recv()
592 my_qp->state, qp->qp_num); in ehca_post_recv()
597 return internal_post_recv(my_qp, qp->device, recv_wr, bad_recv_wr); in ehca_post_recv()
630 struct ehca_qp *my_qp; in ehca_poll_cq_one() local
701 my_qp = idr_find(&ehca_qp_idr, cqe->qp_token); in ehca_poll_cq_one()
703 if (!my_qp) in ehca_poll_cq_one()
705 wc->qp = &my_qp->ib_qp; in ehca_poll_cq_one()
710 qmap = &my_qp->sq_map; in ehca_poll_cq_one()
713 qmap = &my_qp->rq_map; in ehca_poll_cq_one()
723 my_qp->sq_map.next_wqe_idx = next_index(my_qp->sq_map.tail, in ehca_poll_cq_one()
724 my_qp->sq_map.entries); in ehca_poll_cq_one()
725 my_qp->sq_map.left_to_poll = 0; in ehca_poll_cq_one()
726 ehca_add_to_err_list(my_qp, 1); in ehca_poll_cq_one()
728 my_qp->rq_map.next_wqe_idx = next_index(my_qp->rq_map.tail, in ehca_poll_cq_one()
729 my_qp->rq_map.entries); in ehca_poll_cq_one()
730 my_qp->rq_map.left_to_poll = 0; in ehca_poll_cq_one()
731 if (HAS_RQ(my_qp)) in ehca_poll_cq_one()
732 ehca_add_to_err_list(my_qp, 0); in ehca_poll_cq_one()
738 my_qp->real_qp_num); in ehca_poll_cq_one()
749 if ((my_qp->sq_map.left_to_poll == 0) && in ehca_poll_cq_one()
750 (my_qp->rq_map.left_to_poll == 0)) { in ehca_poll_cq_one()
751 ehca_add_to_err_list(my_qp, 1); in ehca_poll_cq_one()
752 if (HAS_RQ(my_qp)) in ehca_poll_cq_one()
753 ehca_add_to_err_list(my_qp, 0); in ehca_poll_cq_one()
798 static int generate_flush_cqes(struct ehca_qp *my_qp, struct ib_cq *cq, in generate_flush_cqes() argument
809 qmap = &my_qp->sq_map; in generate_flush_cqes()
811 qmap = &my_qp->rq_map; in generate_flush_cqes()
824 "qp_num=%#x", offset, my_qp->real_qp_num); in generate_flush_cqes()
857 wc->qp = &my_qp->ib_qp; in generate_flush_cqes()