Lines Matching refs:buf_info

32 			       struct ionic_buf_info *buf_info)  in ionic_rx_page_alloc()  argument
42 if (unlikely(!buf_info)) { in ionic_rx_page_alloc()
56 buf_info->dma_addr = dma_map_page(dev, page, 0, in ionic_rx_page_alloc()
58 if (unlikely(dma_mapping_error(dev, buf_info->dma_addr))) { in ionic_rx_page_alloc()
66 buf_info->page = page; in ionic_rx_page_alloc()
67 buf_info->page_offset = 0; in ionic_rx_page_alloc()
73 struct ionic_buf_info *buf_info) in ionic_rx_page_free() argument
78 if (unlikely(!buf_info)) { in ionic_rx_page_free()
84 if (!buf_info->page) in ionic_rx_page_free()
87 dma_unmap_page(dev, buf_info->dma_addr, IONIC_PAGE_SIZE, DMA_FROM_DEVICE); in ionic_rx_page_free()
88 __free_pages(buf_info->page, 0); in ionic_rx_page_free()
89 buf_info->page = NULL; in ionic_rx_page_free()
93 struct ionic_buf_info *buf_info, u32 used) in ionic_rx_buf_recycle() argument
98 if (page_is_pfmemalloc(buf_info->page)) in ionic_rx_buf_recycle()
102 if (page_to_nid(buf_info->page) != numa_mem_id()) in ionic_rx_buf_recycle()
106 buf_info->page_offset += size; in ionic_rx_buf_recycle()
107 if (buf_info->page_offset >= IONIC_PAGE_SIZE) in ionic_rx_buf_recycle()
110 get_page(buf_info->page); in ionic_rx_buf_recycle()
120 struct ionic_buf_info *buf_info; in ionic_rx_frags() local
130 buf_info = &desc_info->bufs[0]; in ionic_rx_frags()
133 prefetchw(buf_info->page); in ionic_rx_frags()
145 if (unlikely(!buf_info->page)) { in ionic_rx_frags()
150 frag_len = min_t(u16, len, IONIC_PAGE_SIZE - buf_info->page_offset); in ionic_rx_frags()
154 buf_info->dma_addr + buf_info->page_offset, in ionic_rx_frags()
158 buf_info->page, buf_info->page_offset, frag_len, in ionic_rx_frags()
161 if (!ionic_rx_buf_recycle(q, buf_info, frag_len)) { in ionic_rx_frags()
162 dma_unmap_page(dev, buf_info->dma_addr, in ionic_rx_frags()
164 buf_info->page = NULL; in ionic_rx_frags()
167 buf_info++; in ionic_rx_frags()
180 struct ionic_buf_info *buf_info; in ionic_rx_copybreak() local
188 buf_info = &desc_info->bufs[0]; in ionic_rx_copybreak()
199 if (unlikely(!buf_info->page)) { in ionic_rx_copybreak()
204 dma_sync_single_for_cpu(dev, buf_info->dma_addr + buf_info->page_offset, in ionic_rx_copybreak()
206 skb_copy_to_linear_data(skb, page_address(buf_info->page) + buf_info->page_offset, len); in ionic_rx_copybreak()
207 dma_sync_single_for_device(dev, buf_info->dma_addr + buf_info->page_offset, in ionic_rx_copybreak()
351 struct ionic_buf_info *buf_info; in ionic_rx_fill() local
366 buf_info = &desc_info->bufs[0]; in ionic_rx_fill()
368 if (!buf_info->page) { /* alloc a new buffer? */ in ionic_rx_fill()
369 if (unlikely(ionic_rx_page_alloc(q, buf_info))) { in ionic_rx_fill()
377 desc->addr = cpu_to_le64(buf_info->dma_addr + buf_info->page_offset); in ionic_rx_fill()
378 frag_len = min_t(u16, len, IONIC_PAGE_SIZE - buf_info->page_offset); in ionic_rx_fill()
381 buf_info++; in ionic_rx_fill()
388 if (!buf_info->page) { /* alloc a new sg buffer? */ in ionic_rx_fill()
389 if (unlikely(ionic_rx_page_alloc(q, buf_info))) { in ionic_rx_fill()
396 sg_elem->addr = cpu_to_le64(buf_info->dma_addr + buf_info->page_offset); in ionic_rx_fill()
397 frag_len = min_t(u16, remain_len, IONIC_PAGE_SIZE - buf_info->page_offset); in ionic_rx_fill()
400 buf_info++; in ionic_rx_fill()
424 struct ionic_buf_info *buf_info; in ionic_rx_empty() local
430 buf_info = &desc_info->bufs[j]; in ionic_rx_empty()
431 if (buf_info->page) in ionic_rx_empty()
432 ionic_rx_page_free(q, buf_info); in ionic_rx_empty()
626 struct ionic_buf_info *buf_info = desc_info->bufs; in ionic_tx_map_skb() local
639 buf_info->dma_addr = dma_addr; in ionic_tx_map_skb()
640 buf_info->len = skb_headlen(skb); in ionic_tx_map_skb()
641 buf_info++; in ionic_tx_map_skb()
651 buf_info->dma_addr = dma_addr; in ionic_tx_map_skb()
652 buf_info->len = skb_frag_size(frag); in ionic_tx_map_skb()
653 buf_info++; in ionic_tx_map_skb()
664 buf_info--; in ionic_tx_map_skb()
665 dma_unmap_page(dev, buf_info->dma_addr, in ionic_tx_map_skb()
666 buf_info->len, DMA_TO_DEVICE); in ionic_tx_map_skb()
668 dma_unmap_single(dev, buf_info->dma_addr, buf_info->len, DMA_TO_DEVICE); in ionic_tx_map_skb()
677 struct ionic_buf_info *buf_info = desc_info->bufs; in ionic_tx_clean() local
686 dma_unmap_single(dev, (dma_addr_t)buf_info->dma_addr, in ionic_tx_clean()
687 buf_info->len, DMA_TO_DEVICE); in ionic_tx_clean()
688 buf_info++; in ionic_tx_clean()
689 for (i = 1; i < desc_info->nbufs; i++, buf_info++) in ionic_tx_clean()
690 dma_unmap_page(dev, (dma_addr_t)buf_info->dma_addr, in ionic_tx_clean()
691 buf_info->len, DMA_TO_DEVICE); in ionic_tx_clean()
890 struct ionic_buf_info *buf_info; in ionic_tx_tso() local
912 buf_info = desc_info->bufs; in ionic_tx_tso()
962 frag_addr = buf_info->dma_addr; in ionic_tx_tso()
963 frag_rem = buf_info->len; in ionic_tx_tso()
964 buf_info++; in ionic_tx_tso()
1010 struct ionic_buf_info *buf_info = desc_info->bufs; in ionic_tx_calc_csum() local
1025 buf_info->dma_addr); in ionic_tx_calc_csum()
1027 desc->len = cpu_to_le16(buf_info->len); in ionic_tx_calc_csum()
1049 struct ionic_buf_info *buf_info = desc_info->bufs; in ionic_tx_calc_no_csum() local
1064 buf_info->dma_addr); in ionic_tx_calc_no_csum()
1066 desc->len = cpu_to_le16(buf_info->len); in ionic_tx_calc_no_csum()
1085 struct ionic_buf_info *buf_info = &desc_info->bufs[1]; in ionic_tx_skb_frags() local
1090 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++, buf_info++, elem++) { in ionic_tx_skb_frags()
1091 elem->addr = cpu_to_le64(buf_info->dma_addr); in ionic_tx_skb_frags()
1092 elem->len = cpu_to_le16(buf_info->len); in ionic_tx_skb_frags()