Lines Matching full:cqe

528 static inline int ehea_check_cqe(struct ehea_cqe *cqe, int *rq_num)  in ehea_check_cqe()  argument
530 *rq_num = (cqe->type & EHEA_CQE_TYPE_RQ) >> 5; in ehea_check_cqe()
531 if ((cqe->status & EHEA_CQE_STAT_ERR_MASK) == 0) in ehea_check_cqe()
533 if (((cqe->status & EHEA_CQE_STAT_ERR_TCP) != 0) && in ehea_check_cqe()
534 (cqe->header_length == 0)) in ehea_check_cqe()
540 struct sk_buff *skb, struct ehea_cqe *cqe, in ehea_fill_skb() argument
543 int length = cqe->num_bytes_transfered - 4; /*remove CRC */ in ehea_fill_skb()
550 if (cqe->status & EHEA_CQE_BLIND_CKSUM) { in ehea_fill_skb()
552 skb->csum = csum_unfold(~cqe->inet_checksum_value); in ehea_fill_skb()
561 struct ehea_cqe *cqe) in get_skb_by_index() argument
563 int skb_index = EHEA_BMASK_GET(EHEA_WR_ID_INDEX, cqe->wr_id); in get_skb_by_index()
614 struct ehea_cqe *cqe, int *processed_rq2, in ehea_treat_poll_error() argument
619 if (cqe->status & EHEA_CQE_STAT_ERR_TCP) in ehea_treat_poll_error()
621 if (cqe->status & EHEA_CQE_STAT_ERR_IP) in ehea_treat_poll_error()
623 if (cqe->status & EHEA_CQE_STAT_ERR_CRC) in ehea_treat_poll_error()
628 skb = get_skb_by_index(pr->rq2_skba.arr, pr->rq2_skba.len, cqe); in ehea_treat_poll_error()
632 skb = get_skb_by_index(pr->rq3_skba.arr, pr->rq3_skba.len, cqe); in ehea_treat_poll_error()
636 if (cqe->status & EHEA_CQE_STAT_FAT_ERR_MASK) { in ehea_treat_poll_error()
640 ehea_dump(cqe, sizeof(*cqe), "CQE"); in ehea_treat_poll_error()
655 struct ehea_cqe *cqe; in ehea_proc_rwqes() local
670 cqe = ehea_poll_rq1(qp, &wqe_index); in ehea_proc_rwqes()
671 while ((processed < budget) && cqe) { in ehea_proc_rwqes()
676 ehea_dump(cqe, sizeof(*cqe), "CQE"); in ehea_proc_rwqes()
680 if (!ehea_check_cqe(cqe, &rq)) { in ehea_proc_rwqes()
695 skb_copy_to_linear_data(skb, ((char *)cqe) + 64, in ehea_proc_rwqes()
696 cqe->num_bytes_transfered - 4); in ehea_proc_rwqes()
697 ehea_fill_skb(dev, skb, cqe, pr); in ehea_proc_rwqes()
701 skb_arr_rq2_len, cqe); in ehea_proc_rwqes()
707 ehea_fill_skb(dev, skb, cqe, pr); in ehea_proc_rwqes()
712 skb_arr_rq3_len, cqe); in ehea_proc_rwqes()
718 ehea_fill_skb(dev, skb, cqe, pr); in ehea_proc_rwqes()
724 if (cqe->status & EHEA_CQE_VLAN_TAG_XTRACT) in ehea_proc_rwqes()
726 cqe->vlan_tag); in ehea_proc_rwqes()
731 port_reset = ehea_treat_poll_error(pr, rq, cqe, in ehea_proc_rwqes()
737 cqe = ehea_poll_rq1(qp, &wqe_index); in ehea_proc_rwqes()
801 struct ehea_cqe *cqe; in ehea_proc_cqes() local
809 cqe = ehea_poll_cq(send_cq); in ehea_proc_cqes()
810 while (cqe && (quota > 0)) { in ehea_proc_cqes()
816 if (cqe->wr_id == SWQE_RESTART_CHECK) { in ehea_proc_cqes()
822 if (cqe->status & EHEA_CQE_STAT_ERR_MASK) { in ehea_proc_cqes()
824 cqe->status); in ehea_proc_cqes()
827 ehea_dump(cqe, sizeof(*cqe), "Send CQE"); in ehea_proc_cqes()
829 if (cqe->status & EHEA_CQE_STAT_RESET_MASK) { in ehea_proc_cqes()
837 ehea_dump(cqe, sizeof(*cqe), "CQE"); in ehea_proc_cqes()
839 if (likely(EHEA_BMASK_GET(EHEA_WR_ID_TYPE, cqe->wr_id) in ehea_proc_cqes()
842 index = EHEA_BMASK_GET(EHEA_WR_ID_INDEX, cqe->wr_id); in ehea_proc_cqes()
848 swqe_av += EHEA_BMASK_GET(EHEA_WR_ID_REFILL, cqe->wr_id); in ehea_proc_cqes()
851 cqe = ehea_poll_cq(send_cq); in ehea_proc_cqes()
868 return cqe; in ehea_proc_cqes()
878 struct ehea_cqe *cqe; in ehea_poll() local
893 cqe = ehea_poll_rq1(pr->qp, &wqe_index); in ehea_poll()
896 if (!cqe && !cqe_skb) in ehea_poll()
1494 init_attr->signalingtype = 1; /* generate CQE if specified in WQE */ in ehea_init_port_res()