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()
251 struct igbvf_buffer *buffer_info, *next_buffer; in igbvf_clean_rx_irq() local
269 buffer_info = &rx_ring->buffer_info[i]; in igbvf_clean_rx_irq()
286 skb = buffer_info->skb; in igbvf_clean_rx_irq()
288 buffer_info->skb = NULL; in igbvf_clean_rx_irq()
290 dma_unmap_single(&pdev->dev, buffer_info->dma, in igbvf_clean_rx_irq()
293 buffer_info->dma = 0; in igbvf_clean_rx_irq()
299 dma_unmap_single(&pdev->dev, buffer_info->dma, in igbvf_clean_rx_irq()
302 buffer_info->dma = 0; in igbvf_clean_rx_irq()
307 dma_unmap_page(&pdev->dev, buffer_info->page_dma, in igbvf_clean_rx_irq()
310 buffer_info->page_dma = 0; in igbvf_clean_rx_irq()
313 buffer_info->page, in igbvf_clean_rx_irq()
314 buffer_info->page_offset, in igbvf_clean_rx_irq()
318 (page_count(buffer_info->page) != 1)) in igbvf_clean_rx_irq()
319 buffer_info->page = NULL; in igbvf_clean_rx_irq()
321 get_page(buffer_info->page); in igbvf_clean_rx_irq()
333 next_buffer = &rx_ring->buffer_info[i]; in igbvf_clean_rx_irq()
336 buffer_info->skb = next_buffer->skb; in igbvf_clean_rx_irq()
337 buffer_info->dma = next_buffer->dma; in igbvf_clean_rx_irq()
369 buffer_info = next_buffer; in igbvf_clean_rx_irq()
388 struct igbvf_buffer *buffer_info) in igbvf_put_txbuf() argument
390 if (buffer_info->dma) { in igbvf_put_txbuf()
391 if (buffer_info->mapped_as_page) in igbvf_put_txbuf()
393 buffer_info->dma, in igbvf_put_txbuf()
394 buffer_info->length, in igbvf_put_txbuf()
398 buffer_info->dma, in igbvf_put_txbuf()
399 buffer_info->length, in igbvf_put_txbuf()
401 buffer_info->dma = 0; in igbvf_put_txbuf()
403 if (buffer_info->skb) { in igbvf_put_txbuf()
404 dev_kfree_skb_any(buffer_info->skb); in igbvf_put_txbuf()
405 buffer_info->skb = NULL; in igbvf_put_txbuf()
407 buffer_info->time_stamp = 0; in igbvf_put_txbuf()
424 tx_ring->buffer_info = vzalloc(size); in igbvf_setup_tx_resources()
425 if (!tx_ring->buffer_info) in igbvf_setup_tx_resources()
443 vfree(tx_ring->buffer_info); in igbvf_setup_tx_resources()
463 rx_ring->buffer_info = vzalloc(size); in igbvf_setup_rx_resources()
464 if (!rx_ring->buffer_info) in igbvf_setup_rx_resources()
486 vfree(rx_ring->buffer_info); in igbvf_setup_rx_resources()
487 rx_ring->buffer_info = NULL; in igbvf_setup_rx_resources()
500 struct igbvf_buffer *buffer_info; in igbvf_clean_tx_ring() local
504 if (!tx_ring->buffer_info) in igbvf_clean_tx_ring()
509 buffer_info = &tx_ring->buffer_info[i]; in igbvf_clean_tx_ring()
510 igbvf_put_txbuf(adapter, buffer_info); in igbvf_clean_tx_ring()
514 memset(tx_ring->buffer_info, 0, size); in igbvf_clean_tx_ring()
538 vfree(tx_ring->buffer_info); in igbvf_free_tx_resources()
539 tx_ring->buffer_info = NULL; in igbvf_free_tx_resources()
554 struct igbvf_buffer *buffer_info; in igbvf_clean_rx_ring() local
559 if (!rx_ring->buffer_info) in igbvf_clean_rx_ring()
564 buffer_info = &rx_ring->buffer_info[i]; in igbvf_clean_rx_ring()
565 if (buffer_info->dma) { in igbvf_clean_rx_ring()
567 dma_unmap_single(&pdev->dev, buffer_info->dma, in igbvf_clean_rx_ring()
571 dma_unmap_single(&pdev->dev, buffer_info->dma, in igbvf_clean_rx_ring()
575 buffer_info->dma = 0; in igbvf_clean_rx_ring()
578 if (buffer_info->skb) { in igbvf_clean_rx_ring()
579 dev_kfree_skb(buffer_info->skb); in igbvf_clean_rx_ring()
580 buffer_info->skb = NULL; in igbvf_clean_rx_ring()
583 if (buffer_info->page) { in igbvf_clean_rx_ring()
584 if (buffer_info->page_dma) in igbvf_clean_rx_ring()
586 buffer_info->page_dma, in igbvf_clean_rx_ring()
589 put_page(buffer_info->page); in igbvf_clean_rx_ring()
590 buffer_info->page = NULL; in igbvf_clean_rx_ring()
591 buffer_info->page_dma = 0; in igbvf_clean_rx_ring()
592 buffer_info->page_offset = 0; in igbvf_clean_rx_ring()
597 memset(rx_ring->buffer_info, 0, size); in igbvf_clean_rx_ring()
622 vfree(rx_ring->buffer_info); in igbvf_free_rx_resources()
623 rx_ring->buffer_info = NULL; in igbvf_free_rx_resources()
777 struct igbvf_buffer *buffer_info; in igbvf_clean_tx_irq() local
785 buffer_info = &tx_ring->buffer_info[i]; in igbvf_clean_tx_irq()
786 eop_desc = buffer_info->next_to_watch; in igbvf_clean_tx_irq()
801 buffer_info->next_to_watch = NULL; in igbvf_clean_tx_irq()
806 skb = buffer_info->skb; in igbvf_clean_tx_irq()
820 igbvf_put_txbuf(adapter, buffer_info); in igbvf_clean_tx_irq()
827 buffer_info = &tx_ring->buffer_info[i]; in igbvf_clean_tx_irq()
830 eop_desc = buffer_info->next_to_watch; in igbvf_clean_tx_irq()
1979 struct igbvf_buffer *buffer_info; in igbvf_tx_ctxtdesc() local
1983 buffer_info = &tx_ring->buffer_info[i]; in igbvf_tx_ctxtdesc()
1996 buffer_info->time_stamp = jiffies; in igbvf_tx_ctxtdesc()
1997 buffer_info->dma = 0; in igbvf_tx_ctxtdesc()
2148 struct igbvf_buffer *buffer_info; in igbvf_tx_map_adv() local
2156 buffer_info = &tx_ring->buffer_info[i]; in igbvf_tx_map_adv()
2158 buffer_info->length = len; in igbvf_tx_map_adv()
2160 buffer_info->time_stamp = jiffies; in igbvf_tx_map_adv()
2161 buffer_info->mapped_as_page = false; in igbvf_tx_map_adv()
2162 buffer_info->dma = dma_map_single(&pdev->dev, skb->data, len, in igbvf_tx_map_adv()
2164 if (dma_mapping_error(&pdev->dev, buffer_info->dma)) in igbvf_tx_map_adv()
2178 buffer_info = &tx_ring->buffer_info[i]; in igbvf_tx_map_adv()
2180 buffer_info->length = len; in igbvf_tx_map_adv()
2181 buffer_info->time_stamp = jiffies; in igbvf_tx_map_adv()
2182 buffer_info->mapped_as_page = true; in igbvf_tx_map_adv()
2183 buffer_info->dma = skb_frag_dma_map(&pdev->dev, frag, 0, len, in igbvf_tx_map_adv()
2185 if (dma_mapping_error(&pdev->dev, buffer_info->dma)) in igbvf_tx_map_adv()
2189 tx_ring->buffer_info[i].skb = skb; in igbvf_tx_map_adv()
2197 buffer_info->dma = 0; in igbvf_tx_map_adv()
2198 buffer_info->time_stamp = 0; in igbvf_tx_map_adv()
2199 buffer_info->length = 0; in igbvf_tx_map_adv()
2200 buffer_info->mapped_as_page = false; in igbvf_tx_map_adv()
2209 buffer_info = &tx_ring->buffer_info[i]; in igbvf_tx_map_adv()
2210 igbvf_put_txbuf(adapter, buffer_info); in igbvf_tx_map_adv()
2223 struct igbvf_buffer *buffer_info; in igbvf_tx_queue_adv() local
2251 buffer_info = &tx_ring->buffer_info[i]; in igbvf_tx_queue_adv()
2253 tx_desc->read.buffer_addr = cpu_to_le64(buffer_info->dma); in igbvf_tx_queue_adv()
2255 cpu_to_le32(cmd_type_len | buffer_info->length); in igbvf_tx_queue_adv()
2270 tx_ring->buffer_info[first].next_to_watch = tx_desc; in igbvf_tx_queue_adv()
2342 tx_ring->buffer_info[first].time_stamp = 0; in igbvf_xmit_frame_ring_adv()