Lines Matching refs:buf_info
92 struct ionic_buf_info *buf_info) in ionic_rx_page_alloc() argument
102 if (unlikely(!buf_info)) { in ionic_rx_page_alloc()
116 buf_info->dma_addr = dma_map_page(dev, page, 0, in ionic_rx_page_alloc()
118 if (unlikely(dma_mapping_error(dev, buf_info->dma_addr))) { in ionic_rx_page_alloc()
126 buf_info->page = page; in ionic_rx_page_alloc()
127 buf_info->page_offset = 0; in ionic_rx_page_alloc()
133 struct ionic_buf_info *buf_info) in ionic_rx_page_free() argument
138 if (unlikely(!buf_info)) { in ionic_rx_page_free()
144 if (!buf_info->page) in ionic_rx_page_free()
147 dma_unmap_page(dev, buf_info->dma_addr, IONIC_PAGE_SIZE, DMA_FROM_DEVICE); in ionic_rx_page_free()
148 __free_pages(buf_info->page, 0); in ionic_rx_page_free()
149 buf_info->page = NULL; in ionic_rx_page_free()
153 struct ionic_buf_info *buf_info, u32 used) in ionic_rx_buf_recycle() argument
158 if (page_is_pfmemalloc(buf_info->page)) in ionic_rx_buf_recycle()
162 if (page_to_nid(buf_info->page) != numa_mem_id()) in ionic_rx_buf_recycle()
166 buf_info->page_offset += size; in ionic_rx_buf_recycle()
167 if (buf_info->page_offset >= IONIC_PAGE_SIZE) in ionic_rx_buf_recycle()
170 get_page(buf_info->page); in ionic_rx_buf_recycle()
180 struct ionic_buf_info *buf_info; in ionic_rx_frags() local
190 buf_info = &desc_info->bufs[0]; in ionic_rx_frags()
193 prefetchw(buf_info->page); in ionic_rx_frags()
205 if (unlikely(!buf_info->page)) { in ionic_rx_frags()
211 IONIC_PAGE_SIZE - buf_info->page_offset)); in ionic_rx_frags()
215 buf_info->dma_addr + buf_info->page_offset, in ionic_rx_frags()
219 buf_info->page, buf_info->page_offset, frag_len, in ionic_rx_frags()
222 if (!ionic_rx_buf_recycle(q, buf_info, frag_len)) { in ionic_rx_frags()
223 dma_unmap_page(dev, buf_info->dma_addr, in ionic_rx_frags()
225 buf_info->page = NULL; in ionic_rx_frags()
228 buf_info++; in ionic_rx_frags()
241 struct ionic_buf_info *buf_info; in ionic_rx_copybreak() local
249 buf_info = &desc_info->bufs[0]; in ionic_rx_copybreak()
260 if (unlikely(!buf_info->page)) { in ionic_rx_copybreak()
265 dma_sync_single_for_cpu(dev, buf_info->dma_addr + buf_info->page_offset, in ionic_rx_copybreak()
267 skb_copy_to_linear_data(skb, page_address(buf_info->page) + buf_info->page_offset, len); in ionic_rx_copybreak()
268 dma_sync_single_for_device(dev, buf_info->dma_addr + buf_info->page_offset, in ionic_rx_copybreak()
420 struct ionic_buf_info *buf_info; in ionic_rx_fill() local
444 buf_info = &desc_info->bufs[0]; in ionic_rx_fill()
446 if (!buf_info->page) { /* alloc a new buffer? */ in ionic_rx_fill()
447 if (unlikely(ionic_rx_page_alloc(q, buf_info))) { in ionic_rx_fill()
455 desc->addr = cpu_to_le64(buf_info->dma_addr + buf_info->page_offset); in ionic_rx_fill()
457 IONIC_PAGE_SIZE - buf_info->page_offset)); in ionic_rx_fill()
460 buf_info++; in ionic_rx_fill()
467 if (!buf_info->page) { /* alloc a new sg buffer? */ in ionic_rx_fill()
468 if (unlikely(ionic_rx_page_alloc(q, buf_info))) { in ionic_rx_fill()
475 sg_elem->addr = cpu_to_le64(buf_info->dma_addr + buf_info->page_offset); in ionic_rx_fill()
478 buf_info->page_offset)); in ionic_rx_fill()
481 buf_info++; in ionic_rx_fill()
513 struct ionic_buf_info *buf_info; in ionic_rx_empty() local
519 buf_info = &desc_info->bufs[j]; in ionic_rx_empty()
520 if (buf_info->page) in ionic_rx_empty()
521 ionic_rx_page_free(q, buf_info); in ionic_rx_empty()
723 struct ionic_buf_info *buf_info = desc_info->bufs; in ionic_tx_map_skb() local
736 buf_info->dma_addr = dma_addr; in ionic_tx_map_skb()
737 buf_info->len = skb_headlen(skb); in ionic_tx_map_skb()
738 buf_info++; in ionic_tx_map_skb()
748 buf_info->dma_addr = dma_addr; in ionic_tx_map_skb()
749 buf_info->len = skb_frag_size(frag); in ionic_tx_map_skb()
750 buf_info++; in ionic_tx_map_skb()
761 buf_info--; in ionic_tx_map_skb()
762 dma_unmap_page(dev, buf_info->dma_addr, in ionic_tx_map_skb()
763 buf_info->len, DMA_TO_DEVICE); in ionic_tx_map_skb()
765 dma_unmap_single(dev, buf_info->dma_addr, buf_info->len, DMA_TO_DEVICE); in ionic_tx_map_skb()
772 struct ionic_buf_info *buf_info = desc_info->bufs; in ionic_tx_desc_unmap_bufs() local
779 dma_unmap_single(dev, (dma_addr_t)buf_info->dma_addr, in ionic_tx_desc_unmap_bufs()
780 buf_info->len, DMA_TO_DEVICE); in ionic_tx_desc_unmap_bufs()
781 buf_info++; in ionic_tx_desc_unmap_bufs()
782 for (i = 1; i < desc_info->nbufs; i++, buf_info++) in ionic_tx_desc_unmap_bufs()
783 dma_unmap_page(dev, (dma_addr_t)buf_info->dma_addr, in ionic_tx_desc_unmap_bufs()
784 buf_info->len, DMA_TO_DEVICE); in ionic_tx_desc_unmap_bufs()
1001 struct ionic_buf_info *buf_info; in ionic_tx_tso() local
1023 buf_info = desc_info->bufs; in ionic_tx_tso()
1079 frag_addr = buf_info->dma_addr; in ionic_tx_tso()
1080 frag_rem = buf_info->len; in ionic_tx_tso()
1081 buf_info++; in ionic_tx_tso()
1127 struct ionic_buf_info *buf_info = desc_info->bufs; in ionic_tx_calc_csum() local
1142 buf_info->dma_addr); in ionic_tx_calc_csum()
1144 desc->len = cpu_to_le16(buf_info->len); in ionic_tx_calc_csum()
1166 struct ionic_buf_info *buf_info = desc_info->bufs; in ionic_tx_calc_no_csum() local
1181 buf_info->dma_addr); in ionic_tx_calc_no_csum()
1183 desc->len = cpu_to_le16(buf_info->len); in ionic_tx_calc_no_csum()
1202 struct ionic_buf_info *buf_info = &desc_info->bufs[1]; in ionic_tx_skb_frags() local
1207 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++, buf_info++, elem++) { in ionic_tx_skb_frags()
1208 elem->addr = cpu_to_le64(buf_info->dma_addr); in ionic_tx_skb_frags()
1209 elem->len = cpu_to_le16(buf_info->len); in ionic_tx_skb_frags()