Lines Matching refs:buffer
39 tx_queue->buffer = kcalloc(entries, sizeof(*tx_queue->buffer),
41 if (!tx_queue->buffer)
63 kfree(tx_queue->buffer);
64 tx_queue->buffer = NULL;
100 struct efx_tx_buffer *buffer;
107 if (!tx_queue->buffer)
115 buffer = &tx_queue->buffer[tx_queue->read_count & tx_queue->ptr_mask];
116 efx_dequeue_buffer(tx_queue, buffer, &pkts_compl, &bytes_compl,
129 if (!tx_queue->buffer)
144 kfree(tx_queue->buffer);
145 tx_queue->buffer = NULL;
150 struct efx_tx_buffer *buffer,
155 if (buffer->unmap_len) {
157 dma_addr_t unmap_addr = buffer->dma_addr - buffer->dma_offset;
159 if (buffer->flags & EFX_TX_BUF_MAP_SINGLE)
160 dma_unmap_single(dma_dev, unmap_addr, buffer->unmap_len,
163 dma_unmap_page(dma_dev, unmap_addr, buffer->unmap_len,
165 buffer->unmap_len = 0;
168 if (buffer->flags & EFX_TX_BUF_SKB) {
169 struct sk_buff *skb = (struct sk_buff *)buffer->skb;
171 if (unlikely(buffer->flags & EFX_TX_BUF_EFV)) {
192 dev_consume_skb_any((struct sk_buff *)buffer->skb);
196 } else if (buffer->flags & EFX_TX_BUF_XDP) {
197 xdp_return_frame_rx_napi(buffer->xdpf);
200 buffer->len = 0;
201 buffer->flags = 0;
222 struct efx_tx_buffer *buffer = &tx_queue->buffer[read_ptr];
224 if (!efx_tx_buffer_in_use(buffer)) {
232 efx_dequeue_buffer(tx_queue, buffer, pkts_compl, bytes_compl,
294 struct efx_tx_buffer *buffer;
301 buffer = __efx_tx_queue_get_insert_buffer(tx_queue);
302 efx_dequeue_buffer(tx_queue, buffer, &pkts_compl, &bytes_compl,
311 struct efx_tx_buffer *buffer;
316 buffer = efx_tx_queue_get_insert_buffer(tx_queue);
323 buffer->len = dma_len;
324 buffer->dma_addr = dma_addr;
325 buffer->flags = EFX_TX_BUF_CONT;
331 return buffer;
388 struct efx_tx_buffer *buffer;
391 buffer = efx_tx_map_chunk(tx_queue, dma_addr, len);
396 buffer->flags = EFX_TX_BUF_CONT | dma_flags;
397 buffer->unmap_len = unmap_len;
398 buffer->dma_offset = buffer->dma_addr - unmap_addr;
401 /* Store SKB details with the final buffer for
404 buffer->skb = skb;
405 buffer->flags = EFX_TX_BUF_SKB | dma_flags;