Lines Matching refs:nesqp

153 	struct nes_qp *nesqp = fpdu_info->nesqp;  in nes_download_callback()  local
161 nes_rem_ref_cm_node(nesqp->cm_node); in nes_download_callback()
190 static struct sk_buff *nes_get_next_skb(struct nes_device *nesdev, struct nes_qp *nesqp, in nes_get_next_skb() argument
200 if (skb->next == (struct sk_buff *)&nesqp->pau_list) in nes_get_next_skb()
206 if (skb_queue_empty(&nesqp->pau_list)) in nes_get_next_skb()
208 skb = skb_peek(&nesqp->pau_list); in nes_get_next_skb()
213 if (skb_queue_empty(&nesqp->pau_list)) in nes_get_next_skb()
226 skb_unlink(old_skb, &nesqp->pau_list); in nes_get_next_skb()
228 nes_rem_ref_cm_node(nesqp->cm_node); in nes_get_next_skb()
229 if (skb == (struct sk_buff *)&nesqp->pau_list) in nes_get_next_skb()
241 static int get_fpdu_info(struct nes_device *nesdev, struct nes_qp *nesqp, in get_fpdu_info() argument
264 skb = nes_get_next_skb(nesdev, nesqp, NULL, nesqp->pau_rcv_nxt, &ack, &wnd, &fin_rcvd, &rst_rcvd); in get_fpdu_info()
290 skb = nes_get_next_skb(nesdev, nesqp, skb, in get_fpdu_info()
291 nesqp->pau_rcv_nxt + frag_tot, &ack, &wnd, &fin_rcvd, &rst_rcvd); in get_fpdu_info()
297 skb_unlink(frags[i].skb, &nesqp->pau_list); in get_fpdu_info()
364 tcph->seq = cpu_to_be32(nesqp->pau_rcv_nxt); in get_fpdu_info()
368 nesqp->pau_rcv_nxt += fpdu_len + fin_rcvd; in get_fpdu_info()
372 fpdu_info->nesqp = nesqp; in get_fpdu_info()
382 if (!skb_queue_empty(&nesqp->pau_list)) in get_fpdu_info()
383 skb_unlink(frags[i].skb, &nesqp->pau_list); in get_fpdu_info()
388 tcph->seq = cpu_to_be32(nesqp->pau_rcv_nxt); in get_fpdu_info()
406 static int forward_fpdus(struct nes_vnic *nesvnic, struct nes_qp *nesqp) in forward_fpdus() argument
418 spin_lock_irqsave(&nesqp->pau_lock, flags); in forward_fpdus()
419 rc = get_fpdu_info(nesdev, nesqp, &fpdu_info); in forward_fpdus()
421 spin_unlock_irqrestore(&nesqp->pau_lock, flags); in forward_fpdus()
477 spin_unlock_irqrestore(&nesqp->pau_lock, flags); in forward_fpdus()
483 static void process_fpdus(struct nes_vnic *nesvnic, struct nes_qp *nesqp) in process_fpdus() argument
490 forward_fpdus(nesvnic, nesqp); in process_fpdus()
492 spin_lock_irqsave(&nesqp->pau_lock, flags); in process_fpdus()
493 if (nesqp->pau_pending) { in process_fpdus()
494 nesqp->pau_pending = 0; in process_fpdus()
496 nesqp->pau_busy = 0; in process_fpdus()
500 spin_unlock_irqrestore(&nesqp->pau_lock, flags); in process_fpdus()
507 static void queue_fpdus(struct sk_buff *skb, struct nes_vnic *nesvnic, struct nes_qp *nesqp) in queue_fpdus() argument
537 rcv_nxt = nesqp->pau_rcv_nxt; in queue_fpdus()
538 rcv_wnd = le32_to_cpu(nesqp->nesqp_context->rcv_wnd); in queue_fpdus()
541 nes_rem_ref_cm_node(nesqp->cm_node); in queue_fpdus()
545 spin_lock_irqsave(&nesqp->pau_lock, flags); in queue_fpdus()
547 if (nesqp->pau_busy) in queue_fpdus()
548 nesqp->pau_pending = 1; in queue_fpdus()
550 nesqp->pau_busy = 1; in queue_fpdus()
553 if (skb_queue_len(&nesqp->pau_list) == 0) { in queue_fpdus()
554 skb_queue_head(&nesqp->pau_list, skb); in queue_fpdus()
556 tmpskb = nesqp->pau_list.next; in queue_fpdus()
557 while (tmpskb != (struct sk_buff *)&nesqp->pau_list) { in queue_fpdus()
563 skb_insert(tmpskb, skb, &nesqp->pau_list); in queue_fpdus()
565 if (nesqp->pau_state == PAU_READY) in queue_fpdus()
567 spin_unlock_irqrestore(&nesqp->pau_lock, flags); in queue_fpdus()
570 process_fpdus(nesvnic, nesqp); in queue_fpdus()
593 queue_fpdus(skb, nesvnic, cb->nesqp); in mgt_thread()
601 nes_rem_ref_cm_node(cb->nesqp->cm_node); in mgt_thread()
610 void nes_queue_mgt_skbs(struct sk_buff *skb, struct nes_vnic *nesvnic, struct nes_qp *nesqp) in nes_queue_mgt_skbs() argument
615 cb->nesqp = nesqp; in nes_queue_mgt_skbs()
620 void nes_destroy_pau_qp(struct nes_device *nesdev, struct nes_qp *nesqp) in nes_destroy_pau_qp() argument
628 spin_lock_irqsave(&nesqp->pau_lock, flags); in nes_destroy_pau_qp()
629 while (skb_queue_len(&nesqp->pau_list)) { in nes_destroy_pau_qp()
630 skb = skb_dequeue(&nesqp->pau_list); in nes_destroy_pau_qp()
632 nes_rem_ref_cm_node(nesqp->cm_node); in nes_destroy_pau_qp()
634 spin_unlock_irqrestore(&nesqp->pau_lock, flags); in nes_destroy_pau_qp()
643 struct nes_qp *nesqp; in nes_chg_qh_handler() local
649 nesqp = qh_chg->nesqp; in nes_chg_qh_handler()
656 switch (nesqp->pau_state) { in nes_chg_qh_handler()
659 nesqp->pau_state = PAU_ADD_LB_QH; in nes_chg_qh_handler()
671 nes_quad.TcpPorts[0] = swab16(nesqp->nesqp_context->tcpPorts[1]); in nes_chg_qh_handler()
672 nes_quad.TcpPorts[1] = swab16(nesqp->nesqp_context->tcpPorts[0]); in nes_chg_qh_handler()
676 nesqp->hte_index = cpu_to_be32(crc_value ^ 0xffffffff); in nes_chg_qh_handler()
678 nesqp->hte_index, nesqp->hte_index & nesadapter->hte_index_mask); in nes_chg_qh_handler()
680 nesqp->hte_index &= nesadapter->hte_index_mask; in nes_chg_qh_handler()
681 nesqp->nesqp_context->hte_index = cpu_to_le32(nesqp->hte_index); in nes_chg_qh_handler()
682 nesqp->nesqp_context->ip0 = cpu_to_le32(0x7f000001); in nes_chg_qh_handler()
683 nesqp->nesqp_context->rcv_nxt = cpu_to_le32(nesqp->pau_rcv_nxt); in nes_chg_qh_handler()
690 set_wqe_32bit_value(cqp_wqe->wqe_words, NES_CQP_WQE_ID_IDX, nesqp->hwqp.qp_id); in nes_chg_qh_handler()
691 u64temp = (u64)nesqp->nesqp_context_pbase; in nes_chg_qh_handler()
705 nesqp->pau_state = PAU_READY; in nes_chg_qh_handler()
706 process_fpdus(qh_chg->nesvnic, qh_chg->nesqp); in nes_chg_qh_handler()
716 struct nes_vnic *nesvnic, struct nes_qp *nesqp) in nes_change_quad_hash() argument
739 qh_chg->nesqp = nesqp; in nes_change_quad_hash()
740 nesqp->pau_state = PAU_DEL_QH; in nes_change_quad_hash()
747 set_wqe_32bit_value(cqp_wqe->wqe_words, NES_CQP_WQE_ID_IDX, nesqp->hwqp.qp_id); in nes_change_quad_hash()
748 u64temp = (u64)nesqp->nesqp_context_pbase; in nes_change_quad_hash()
784 struct nes_qp *nesqp; in nes_mgt_ce_handler() local
796 nesqp = NULL; in nes_mgt_ce_handler()
802 nesqp = (struct nes_qp *)context; in nes_mgt_ce_handler()
806 if (nesqp) { in nes_mgt_ce_handler()
807 if (nesqp->pau_mode == false) { in nes_mgt_ce_handler()
808 nesqp->pau_mode = true; /* First time for this qp */ in nes_mgt_ce_handler()
809 nesqp->pau_rcv_nxt = le32_to_cpu( in nes_mgt_ce_handler()
811 skb_queue_head_init(&nesqp->pau_list); in nes_mgt_ce_handler()
812 spin_lock_init(&nesqp->pau_lock); in nes_mgt_ce_handler()
814 nes_change_quad_hash(nesdev, mgtvnic->nesvnic, nesqp); in nes_mgt_ce_handler()
827 nes_add_ref_cm_node(nesqp->cm_node); in nes_mgt_ce_handler()
828 nes_queue_mgt_skbs(rx_skb, mgtvnic->nesvnic, nesqp); in nes_mgt_ce_handler()