Lines Matching refs:buffer_info
140 struct igbvf_buffer *buffer_info; in igbvf_alloc_rx_buffers() local
146 buffer_info = &rx_ring->buffer_info[i]; in igbvf_alloc_rx_buffers()
156 if (adapter->rx_ps_hdr_size && !buffer_info->page_dma) { in igbvf_alloc_rx_buffers()
157 if (!buffer_info->page) { in igbvf_alloc_rx_buffers()
158 buffer_info->page = alloc_page(GFP_ATOMIC); in igbvf_alloc_rx_buffers()
159 if (!buffer_info->page) { in igbvf_alloc_rx_buffers()
163 buffer_info->page_offset = 0; in igbvf_alloc_rx_buffers()
165 buffer_info->page_offset ^= PAGE_SIZE / 2; in igbvf_alloc_rx_buffers()
167 buffer_info->page_dma = in igbvf_alloc_rx_buffers()
168 dma_map_page(&pdev->dev, buffer_info->page, in igbvf_alloc_rx_buffers()
169 buffer_info->page_offset, in igbvf_alloc_rx_buffers()
173 buffer_info->page_dma)) { in igbvf_alloc_rx_buffers()
174 __free_page(buffer_info->page); in igbvf_alloc_rx_buffers()
175 buffer_info->page = NULL; in igbvf_alloc_rx_buffers()
181 if (!buffer_info->skb) { in igbvf_alloc_rx_buffers()
188 buffer_info->skb = skb; in igbvf_alloc_rx_buffers()
189 buffer_info->dma = dma_map_single(&pdev->dev, skb->data, in igbvf_alloc_rx_buffers()
192 if (dma_mapping_error(&pdev->dev, buffer_info->dma)) { in igbvf_alloc_rx_buffers()
193 dev_kfree_skb(buffer_info->skb); in igbvf_alloc_rx_buffers()
194 buffer_info->skb = NULL; in igbvf_alloc_rx_buffers()
204 cpu_to_le64(buffer_info->page_dma); in igbvf_alloc_rx_buffers()
205 rx_desc->read.hdr_addr = cpu_to_le64(buffer_info->dma); in igbvf_alloc_rx_buffers()
207 rx_desc->read.pkt_addr = cpu_to_le64(buffer_info->dma); in igbvf_alloc_rx_buffers()
214 buffer_info = &rx_ring->buffer_info[i]; in igbvf_alloc_rx_buffers()
249 struct igbvf_buffer *buffer_info, *next_buffer; in igbvf_clean_rx_irq() local
267 buffer_info = &rx_ring->buffer_info[i]; in igbvf_clean_rx_irq()
284 skb = buffer_info->skb; in igbvf_clean_rx_irq()
286 buffer_info->skb = NULL; in igbvf_clean_rx_irq()
288 dma_unmap_single(&pdev->dev, buffer_info->dma, in igbvf_clean_rx_irq()
291 buffer_info->dma = 0; in igbvf_clean_rx_irq()
297 dma_unmap_single(&pdev->dev, buffer_info->dma, in igbvf_clean_rx_irq()
300 buffer_info->dma = 0; in igbvf_clean_rx_irq()
305 dma_unmap_page(&pdev->dev, buffer_info->page_dma, in igbvf_clean_rx_irq()
308 buffer_info->page_dma = 0; in igbvf_clean_rx_irq()
311 buffer_info->page, in igbvf_clean_rx_irq()
312 buffer_info->page_offset, in igbvf_clean_rx_irq()
316 (page_count(buffer_info->page) != 1)) in igbvf_clean_rx_irq()
317 buffer_info->page = NULL; in igbvf_clean_rx_irq()
319 get_page(buffer_info->page); in igbvf_clean_rx_irq()
331 next_buffer = &rx_ring->buffer_info[i]; in igbvf_clean_rx_irq()
334 buffer_info->skb = next_buffer->skb; in igbvf_clean_rx_irq()
335 buffer_info->dma = next_buffer->dma; in igbvf_clean_rx_irq()
367 buffer_info = next_buffer; in igbvf_clean_rx_irq()
386 struct igbvf_buffer *buffer_info) in igbvf_put_txbuf() argument
388 if (buffer_info->dma) { in igbvf_put_txbuf()
389 if (buffer_info->mapped_as_page) in igbvf_put_txbuf()
391 buffer_info->dma, in igbvf_put_txbuf()
392 buffer_info->length, in igbvf_put_txbuf()
396 buffer_info->dma, in igbvf_put_txbuf()
397 buffer_info->length, in igbvf_put_txbuf()
399 buffer_info->dma = 0; in igbvf_put_txbuf()
401 if (buffer_info->skb) { in igbvf_put_txbuf()
402 dev_kfree_skb_any(buffer_info->skb); in igbvf_put_txbuf()
403 buffer_info->skb = NULL; in igbvf_put_txbuf()
405 buffer_info->time_stamp = 0; in igbvf_put_txbuf()
421 tx_ring->buffer_info = vzalloc(size); in igbvf_setup_tx_resources()
422 if (!tx_ring->buffer_info) in igbvf_setup_tx_resources()
440 vfree(tx_ring->buffer_info); in igbvf_setup_tx_resources()
459 rx_ring->buffer_info = vzalloc(size); in igbvf_setup_rx_resources()
460 if (!rx_ring->buffer_info) in igbvf_setup_rx_resources()
482 vfree(rx_ring->buffer_info); in igbvf_setup_rx_resources()
483 rx_ring->buffer_info = NULL; in igbvf_setup_rx_resources()
496 struct igbvf_buffer *buffer_info; in igbvf_clean_tx_ring() local
500 if (!tx_ring->buffer_info) in igbvf_clean_tx_ring()
505 buffer_info = &tx_ring->buffer_info[i]; in igbvf_clean_tx_ring()
506 igbvf_put_txbuf(adapter, buffer_info); in igbvf_clean_tx_ring()
510 memset(tx_ring->buffer_info, 0, size); in igbvf_clean_tx_ring()
534 vfree(tx_ring->buffer_info); in igbvf_free_tx_resources()
535 tx_ring->buffer_info = NULL; in igbvf_free_tx_resources()
550 struct igbvf_buffer *buffer_info; in igbvf_clean_rx_ring() local
555 if (!rx_ring->buffer_info) in igbvf_clean_rx_ring()
560 buffer_info = &rx_ring->buffer_info[i]; in igbvf_clean_rx_ring()
561 if (buffer_info->dma) { in igbvf_clean_rx_ring()
563 dma_unmap_single(&pdev->dev, buffer_info->dma, in igbvf_clean_rx_ring()
567 dma_unmap_single(&pdev->dev, buffer_info->dma, in igbvf_clean_rx_ring()
571 buffer_info->dma = 0; in igbvf_clean_rx_ring()
574 if (buffer_info->skb) { in igbvf_clean_rx_ring()
575 dev_kfree_skb(buffer_info->skb); in igbvf_clean_rx_ring()
576 buffer_info->skb = NULL; in igbvf_clean_rx_ring()
579 if (buffer_info->page) { in igbvf_clean_rx_ring()
580 if (buffer_info->page_dma) in igbvf_clean_rx_ring()
582 buffer_info->page_dma, in igbvf_clean_rx_ring()
585 put_page(buffer_info->page); in igbvf_clean_rx_ring()
586 buffer_info->page = NULL; in igbvf_clean_rx_ring()
587 buffer_info->page_dma = 0; in igbvf_clean_rx_ring()
588 buffer_info->page_offset = 0; in igbvf_clean_rx_ring()
593 memset(rx_ring->buffer_info, 0, size); in igbvf_clean_rx_ring()
618 vfree(rx_ring->buffer_info); in igbvf_free_rx_resources()
619 rx_ring->buffer_info = NULL; in igbvf_free_rx_resources()
773 struct igbvf_buffer *buffer_info; in igbvf_clean_tx_irq() local
781 buffer_info = &tx_ring->buffer_info[i]; in igbvf_clean_tx_irq()
782 eop_desc = buffer_info->next_to_watch; in igbvf_clean_tx_irq()
797 buffer_info->next_to_watch = NULL; in igbvf_clean_tx_irq()
802 skb = buffer_info->skb; in igbvf_clean_tx_irq()
816 igbvf_put_txbuf(adapter, buffer_info); in igbvf_clean_tx_irq()
823 buffer_info = &tx_ring->buffer_info[i]; in igbvf_clean_tx_irq()
826 eop_desc = buffer_info->next_to_watch; in igbvf_clean_tx_irq()
1976 struct igbvf_buffer *buffer_info; in igbvf_tx_ctxtdesc() local
1980 buffer_info = &tx_ring->buffer_info[i]; in igbvf_tx_ctxtdesc()
1993 buffer_info->time_stamp = jiffies; in igbvf_tx_ctxtdesc()
1994 buffer_info->dma = 0; in igbvf_tx_ctxtdesc()
2157 struct igbvf_buffer *buffer_info; in igbvf_tx_map_adv() local
2165 buffer_info = &tx_ring->buffer_info[i]; in igbvf_tx_map_adv()
2167 buffer_info->length = len; in igbvf_tx_map_adv()
2169 buffer_info->time_stamp = jiffies; in igbvf_tx_map_adv()
2170 buffer_info->mapped_as_page = false; in igbvf_tx_map_adv()
2171 buffer_info->dma = dma_map_single(&pdev->dev, skb->data, len, in igbvf_tx_map_adv()
2173 if (dma_mapping_error(&pdev->dev, buffer_info->dma)) in igbvf_tx_map_adv()
2187 buffer_info = &tx_ring->buffer_info[i]; in igbvf_tx_map_adv()
2189 buffer_info->length = len; in igbvf_tx_map_adv()
2190 buffer_info->time_stamp = jiffies; in igbvf_tx_map_adv()
2191 buffer_info->mapped_as_page = true; in igbvf_tx_map_adv()
2192 buffer_info->dma = skb_frag_dma_map(&pdev->dev, frag, 0, len, in igbvf_tx_map_adv()
2194 if (dma_mapping_error(&pdev->dev, buffer_info->dma)) in igbvf_tx_map_adv()
2198 tx_ring->buffer_info[i].skb = skb; in igbvf_tx_map_adv()
2206 buffer_info->dma = 0; in igbvf_tx_map_adv()
2207 buffer_info->time_stamp = 0; in igbvf_tx_map_adv()
2208 buffer_info->length = 0; in igbvf_tx_map_adv()
2209 buffer_info->mapped_as_page = false; in igbvf_tx_map_adv()
2218 buffer_info = &tx_ring->buffer_info[i]; in igbvf_tx_map_adv()
2219 igbvf_put_txbuf(adapter, buffer_info); in igbvf_tx_map_adv()
2232 struct igbvf_buffer *buffer_info; in igbvf_tx_queue_adv() local
2260 buffer_info = &tx_ring->buffer_info[i]; in igbvf_tx_queue_adv()
2262 tx_desc->read.buffer_addr = cpu_to_le64(buffer_info->dma); in igbvf_tx_queue_adv()
2264 cpu_to_le32(cmd_type_len | buffer_info->length); in igbvf_tx_queue_adv()
2279 tx_ring->buffer_info[first].next_to_watch = tx_desc; in igbvf_tx_queue_adv()
2351 tx_ring->buffer_info[first].time_stamp = 0; in igbvf_xmit_frame_ring_adv()