Lines Matching refs:buffer
29 struct ef4_tx_buffer *buffer) in ef4_tx_get_copy_buffer() argument
41 buffer->dma_addr = page_buf->dma_addr + offset; in ef4_tx_get_copy_buffer()
42 buffer->unmap_len = 0; in ef4_tx_get_copy_buffer()
47 struct ef4_tx_buffer *buffer, size_t len) in ef4_tx_get_copy_buffer_limited() argument
51 return ef4_tx_get_copy_buffer(tx_queue, buffer); in ef4_tx_get_copy_buffer_limited()
55 struct ef4_tx_buffer *buffer, in ef4_dequeue_buffer() argument
59 if (buffer->unmap_len) { in ef4_dequeue_buffer()
61 dma_addr_t unmap_addr = buffer->dma_addr - buffer->dma_offset; in ef4_dequeue_buffer()
62 if (buffer->flags & EF4_TX_BUF_MAP_SINGLE) in ef4_dequeue_buffer()
63 dma_unmap_single(dma_dev, unmap_addr, buffer->unmap_len, in ef4_dequeue_buffer()
66 dma_unmap_page(dma_dev, unmap_addr, buffer->unmap_len, in ef4_dequeue_buffer()
68 buffer->unmap_len = 0; in ef4_dequeue_buffer()
71 if (buffer->flags & EF4_TX_BUF_SKB) { in ef4_dequeue_buffer()
73 (*bytes_compl) += buffer->skb->len; in ef4_dequeue_buffer()
74 dev_consume_skb_any((struct sk_buff *)buffer->skb); in ef4_dequeue_buffer()
80 buffer->len = 0; in ef4_dequeue_buffer()
81 buffer->flags = 0; in ef4_dequeue_buffer()
155 struct ef4_tx_buffer *buffer; in ef4_enqueue_skb_copy() local
161 buffer = ef4_tx_queue_get_insert_buffer(tx_queue); in ef4_enqueue_skb_copy()
163 copy_buffer = ef4_tx_get_copy_buffer(tx_queue, buffer); in ef4_enqueue_skb_copy()
171 buffer->len = min_len; in ef4_enqueue_skb_copy()
173 buffer->len = copy_len; in ef4_enqueue_skb_copy()
176 buffer->skb = skb; in ef4_enqueue_skb_copy()
177 buffer->flags = EF4_TX_BUF_SKB; in ef4_enqueue_skb_copy()
188 struct ef4_tx_buffer *buffer; in ef4_tx_map_chunk() local
193 buffer = ef4_tx_queue_get_insert_buffer(tx_queue); in ef4_tx_map_chunk()
196 buffer->len = dma_len; in ef4_tx_map_chunk()
197 buffer->dma_addr = dma_addr; in ef4_tx_map_chunk()
198 buffer->flags = EF4_TX_BUF_CONT; in ef4_tx_map_chunk()
204 return buffer; in ef4_tx_map_chunk()
233 struct ef4_tx_buffer *buffer; in ef4_tx_map_data() local
236 buffer = ef4_tx_map_chunk(tx_queue, dma_addr, len); in ef4_tx_map_data()
241 buffer->flags = EF4_TX_BUF_CONT | dma_flags; in ef4_tx_map_data()
242 buffer->unmap_len = unmap_len; in ef4_tx_map_data()
243 buffer->dma_offset = buffer->dma_addr - unmap_addr; in ef4_tx_map_data()
249 buffer->skb = skb; in ef4_tx_map_data()
250 buffer->flags = EF4_TX_BUF_SKB | dma_flags; in ef4_tx_map_data()
273 struct ef4_tx_buffer *buffer; in ef4_enqueue_unwind() local
278 buffer = __ef4_tx_queue_get_insert_buffer(tx_queue); in ef4_enqueue_unwind()
279 ef4_dequeue_buffer(tx_queue, buffer, NULL, NULL); in ef4_enqueue_unwind()
369 struct ef4_tx_buffer *buffer = &tx_queue->buffer[read_ptr]; in ef4_dequeue_buffers() local
371 if (!(buffer->flags & EF4_TX_BUF_OPTION) && in ef4_dequeue_buffers()
372 unlikely(buffer->len == 0)) { in ef4_dequeue_buffers()
380 ef4_dequeue_buffer(tx_queue, buffer, pkts_compl, bytes_compl); in ef4_dequeue_buffers()
463 if (!tx_queue->buffer) { in ef4_setup_tc()
557 tx_queue->buffer = kcalloc(entries, sizeof(*tx_queue->buffer), in ef4_probe_tx_queue()
559 if (!tx_queue->buffer) in ef4_probe_tx_queue()
580 kfree(tx_queue->buffer); in ef4_probe_tx_queue()
581 tx_queue->buffer = NULL; in ef4_probe_tx_queue()
611 struct ef4_tx_buffer *buffer; in ef4_fini_tx_queue() local
616 if (!tx_queue->buffer) in ef4_fini_tx_queue()
622 buffer = &tx_queue->buffer[tx_queue->read_count & tx_queue->ptr_mask]; in ef4_fini_tx_queue()
623 ef4_dequeue_buffer(tx_queue, buffer, &pkts_compl, &bytes_compl); in ef4_fini_tx_queue()
635 if (!tx_queue->buffer) in ef4_remove_tx_queue()
650 kfree(tx_queue->buffer); in ef4_remove_tx_queue()
651 tx_queue->buffer = NULL; in ef4_remove_tx_queue()