Lines Matching full:unmap

94 	struct bnad_tx_unmap *unmap;  in bnad_tx_buff_unmap()  local
98 unmap = &unmap_q[index]; in bnad_tx_buff_unmap()
99 nvecs = unmap->nvecs; in bnad_tx_buff_unmap()
101 skb = unmap->skb; in bnad_tx_buff_unmap()
102 unmap->skb = NULL; in bnad_tx_buff_unmap()
103 unmap->nvecs = 0; in bnad_tx_buff_unmap()
105 dma_unmap_addr(&unmap->vectors[0], dma_addr), in bnad_tx_buff_unmap()
107 dma_unmap_addr_set(&unmap->vectors[0], dma_addr, 0); in bnad_tx_buff_unmap()
116 unmap = &unmap_q[index]; in bnad_tx_buff_unmap()
120 dma_unmap_addr(&unmap->vectors[vector], dma_addr), in bnad_tx_buff_unmap()
121 dma_unmap_len(&unmap->vectors[vector], dma_len), in bnad_tx_buff_unmap()
123 dma_unmap_addr_set(&unmap->vectors[vector], dma_addr, 0); in bnad_tx_buff_unmap()
135 * so DMA unmap & freeing is fine.
165 struct bnad_tx_unmap *unmap; in bnad_txcmpl_process() local
181 unmap = &unmap_q[cons]; in bnad_txcmpl_process()
183 skb = unmap->skb; in bnad_txcmpl_process()
188 unmap_wis = BNA_TXQ_WI_NEEDED(unmap->nvecs); in bnad_txcmpl_process()
293 bnad_rxq_cleanup_page(struct bnad *bnad, struct bnad_rx_unmap *unmap) in bnad_rxq_cleanup_page() argument
295 if (!unmap->page) in bnad_rxq_cleanup_page()
299 dma_unmap_addr(&unmap->vector, dma_addr), in bnad_rxq_cleanup_page()
300 unmap->vector.len, DMA_FROM_DEVICE); in bnad_rxq_cleanup_page()
301 put_page(unmap->page); in bnad_rxq_cleanup_page()
302 unmap->page = NULL; in bnad_rxq_cleanup_page()
303 dma_unmap_addr_set(&unmap->vector, dma_addr, 0); in bnad_rxq_cleanup_page()
304 unmap->vector.len = 0; in bnad_rxq_cleanup_page()
308 bnad_rxq_cleanup_skb(struct bnad *bnad, struct bnad_rx_unmap *unmap) in bnad_rxq_cleanup_skb() argument
310 if (!unmap->skb) in bnad_rxq_cleanup_skb()
314 dma_unmap_addr(&unmap->vector, dma_addr), in bnad_rxq_cleanup_skb()
315 unmap->vector.len, DMA_FROM_DEVICE); in bnad_rxq_cleanup_skb()
316 dev_kfree_skb_any(unmap->skb); in bnad_rxq_cleanup_skb()
317 unmap->skb = NULL; in bnad_rxq_cleanup_skb()
318 dma_unmap_addr_set(&unmap->vector, dma_addr, 0); in bnad_rxq_cleanup_skb()
319 unmap->vector.len = 0; in bnad_rxq_cleanup_skb()
329 struct bnad_rx_unmap *unmap = &unmap_q->unmap[i]; in bnad_rxq_cleanup() local
332 bnad_rxq_cleanup_skb(bnad, unmap); in bnad_rxq_cleanup()
334 bnad_rxq_cleanup_page(bnad, unmap); in bnad_rxq_cleanup()
344 struct bnad_rx_unmap *unmap, *prev; in bnad_rxq_refill_page() local
357 unmap = &unmap_q->unmap[prod]; in bnad_rxq_refill_page()
364 prev = &unmap_q->unmap[unmap_q->reuse_pi]; in bnad_rxq_refill_page()
385 unmap->page = page; in bnad_rxq_refill_page()
386 unmap->page_offset = page_offset; in bnad_rxq_refill_page()
387 dma_unmap_addr_set(&unmap->vector, dma_addr, dma_addr); in bnad_rxq_refill_page()
388 unmap->vector.len = unmap_q->map_size; in bnad_rxq_refill_page()
418 struct bnad_rx_unmap *unmap; in bnad_rxq_refill_skb() local
429 unmap = &unmap_q->unmap[prod]; in bnad_rxq_refill_skb()
448 unmap->skb = skb; in bnad_rxq_refill_skb()
449 dma_unmap_addr_set(&unmap->vector, dma_addr, dma_addr); in bnad_rxq_refill_skb()
450 unmap->vector.len = buff_sz; in bnad_rxq_refill_skb()
504 struct bnad_rx_unmap *unmap; in bnad_cq_drop_packet() local
509 unmap = &unmap_q->unmap[ci]; in bnad_cq_drop_packet()
513 bnad_rxq_cleanup_skb(bnad, unmap); in bnad_cq_drop_packet()
515 bnad_rxq_cleanup_page(bnad, unmap); in bnad_cq_drop_packet()
538 prefetch(page_address(unmap_q->unmap[ci].page) + in bnad_cq_setup_skb_frags()
539 unmap_q->unmap[ci].page_offset); in bnad_cq_setup_skb_frags()
542 struct bnad_rx_unmap *unmap; in bnad_cq_setup_skb_frags() local
545 unmap = &unmap_q->unmap[ci]; in bnad_cq_setup_skb_frags()
549 dma_unmap_addr(&unmap->vector, dma_addr), in bnad_cq_setup_skb_frags()
550 unmap->vector.len, DMA_FROM_DEVICE); in bnad_cq_setup_skb_frags()
553 skb->truesize += unmap->vector.len; in bnad_cq_setup_skb_frags()
557 unmap->page, unmap->page_offset, len); in bnad_cq_setup_skb_frags()
559 unmap->page = NULL; in bnad_cq_setup_skb_frags()
560 unmap->vector.len = 0; in bnad_cq_setup_skb_frags()
572 struct bnad_rx_unmap *unmap, u32 len) in bnad_cq_setup_skb() argument
577 dma_unmap_addr(&unmap->vector, dma_addr), in bnad_cq_setup_skb()
578 unmap->vector.len, DMA_FROM_DEVICE); in bnad_cq_setup_skb()
583 unmap->skb = NULL; in bnad_cq_setup_skb()
584 unmap->vector.len = 0; in bnad_cq_setup_skb()
593 struct bnad_rx_unmap *unmap = NULL; in bnad_cq_process() local
631 unmap = &unmap_q->unmap[sop_ci]; in bnad_cq_process()
632 skb = unmap->skb; in bnad_cq_process()
691 bnad_cq_setup_skb(bnad, skb, unmap, len); in bnad_cq_process()
1979 /* Fill Unmap Q memory requirements */ in bnad_setup_tx()
2223 /* Fill Unmap Q memory requirements */ in bnad_setup_rx()
2919 struct bnad_tx_unmap *unmap_q, *unmap, *head_unmap; in bnad_start_xmit() local
3016 unmap = head_unmap; in bnad_start_xmit()
3026 dma_unmap_addr_set(&unmap->vectors[0], dma_addr, dma_addr); in bnad_start_xmit()
3050 unmap = &unmap_q[prod]; in bnad_start_xmit()
3064 dma_unmap_len_set(&unmap->vectors[vect_id], dma_len, size); in bnad_start_xmit()
3067 dma_unmap_addr_set(&unmap->vectors[vect_id], dma_addr, in bnad_start_xmit()