Lines Matching refs:wq
205 static void enic_free_wq_buf(struct vnic_wq *wq, struct vnic_wq_buf *buf) in enic_free_wq_buf() argument
207 struct enic *enic = vnic_dev_priv(wq->vdev); in enic_free_wq_buf()
220 static void enic_wq_free_buf(struct vnic_wq *wq, in enic_wq_free_buf() argument
223 enic_free_wq_buf(wq, buf); in enic_wq_free_buf()
233 vnic_wq_service(&enic->wq[q_number], cq_desc, in enic_wq_service()
238 vnic_wq_desc_avail(&enic->wq[q_number]) >= in enic_wq_service()
254 error_status = vnic_wq_error_status(&enic->wq[i]); in enic_log_q_error()
425 static int enic_queue_wq_skb_cont(struct enic *enic, struct vnic_wq *wq, in enic_queue_wq_skb_cont() argument
440 enic_queue_wq_desc_cont(wq, skb, dma_addr, skb_frag_size(frag), in enic_queue_wq_skb_cont()
448 static int enic_queue_wq_skb_vlan(struct enic *enic, struct vnic_wq *wq, in enic_queue_wq_skb_vlan() argument
468 enic_queue_wq_desc(wq, skb, dma_addr, head_len, vlan_tag_insert, in enic_queue_wq_skb_vlan()
472 err = enic_queue_wq_skb_cont(enic, wq, skb, len_left, loopback); in enic_queue_wq_skb_vlan()
477 static int enic_queue_wq_skb_csum_l4(struct enic *enic, struct vnic_wq *wq, in enic_queue_wq_skb_csum_l4() argument
499 enic_queue_wq_desc_csum_l4(wq, skb, dma_addr, head_len, csum_offset, in enic_queue_wq_skb_csum_l4()
504 err = enic_queue_wq_skb_cont(enic, wq, skb, len_left, loopback); in enic_queue_wq_skb_csum_l4()
509 static int enic_queue_wq_skb_tso(struct enic *enic, struct vnic_wq *wq, in enic_queue_wq_skb_tso() argument
546 enic_queue_wq_desc_tso(wq, skb, dma_addr, len, mss, hdr_len, in enic_queue_wq_skb_tso()
572 enic_queue_wq_desc_cont(wq, skb, dma_addr, len, in enic_queue_wq_skb_tso()
585 struct vnic_wq *wq, struct sk_buff *skb) in enic_queue_wq_skb() argument
603 err = enic_queue_wq_skb_tso(enic, wq, skb, mss, in enic_queue_wq_skb()
607 err = enic_queue_wq_skb_csum_l4(enic, wq, skb, vlan_tag_insert, in enic_queue_wq_skb()
610 err = enic_queue_wq_skb_vlan(enic, wq, skb, vlan_tag_insert, in enic_queue_wq_skb()
615 buf = wq->to_use->prev; in enic_queue_wq_skb()
619 while (!buf->os_buf && (buf->next != wq->to_clean)) { in enic_queue_wq_skb()
620 enic_free_wq_buf(wq, buf); in enic_queue_wq_skb()
621 wq->ring.desc_avail++; in enic_queue_wq_skb()
624 wq->to_use = buf->next; in enic_queue_wq_skb()
634 struct vnic_wq *wq; in enic_hard_start_xmit() local
644 wq = &enic->wq[txq_map]; in enic_hard_start_xmit()
661 if (vnic_wq_desc_avail(wq) < in enic_hard_start_xmit()
670 enic_queue_wq_skb(enic, wq, skb); in enic_hard_start_xmit()
672 if (vnic_wq_desc_avail(wq) < MAX_SKB_FRAGS + ENIC_DESC_MAX_SPLITS) in enic_hard_start_xmit()
675 vnic_wq_doorbell(wq); in enic_hard_start_xmit()
1422 struct vnic_wq *wq = &enic->wq[wq_index]; in enic_poll_msix_wq() local
1429 wq_irq = wq->index; in enic_poll_msix_wq()
1575 int wq = enic_cq_wq(enic, i); in enic_request_intr() local
1582 enic->msix[intr].devid = &enic->napi[wq]; in enic_request_intr()
1739 vnic_wq_enable(&enic->wq[i]); in enic_open()
1815 err = vnic_wq_disable(&enic->wq[i]); in enic_stop()
1830 vnic_wq_clean(&enic->wq[i], enic_free_wq_buf); in enic_stop()