Lines Matching refs:rx_swbd
411 struct enetc_rx_swbd *rx_swbd) in enetc_new_page() argument
427 rx_swbd->dma = addr; in enetc_new_page()
428 rx_swbd->page = page; in enetc_new_page()
429 rx_swbd->page_offset = ENETC_RXB_PAD; in enetc_new_page()
436 struct enetc_rx_swbd *rx_swbd; in enetc_refill_rx_ring() local
441 rx_swbd = &rx_ring->rx_swbd[i]; in enetc_refill_rx_ring()
446 if (unlikely(!rx_swbd->page)) { in enetc_refill_rx_ring()
447 if (unlikely(!enetc_new_page(rx_ring, rx_swbd))) { in enetc_refill_rx_ring()
454 rxbd->w.addr = cpu_to_le64(rx_swbd->dma + in enetc_refill_rx_ring()
455 rx_swbd->page_offset); in enetc_refill_rx_ring()
459 rx_swbd++; in enetc_refill_rx_ring()
464 rx_swbd = rx_ring->rx_swbd; in enetc_refill_rx_ring()
547 new = &rx_ring->rx_swbd[rx_ring->next_to_alloc]; in enetc_reuse_page()
559 struct enetc_rx_swbd *rx_swbd = &rx_ring->rx_swbd[i]; in enetc_get_rx_buff() local
561 dma_sync_single_range_for_cpu(rx_ring->dev, rx_swbd->dma, in enetc_get_rx_buff()
562 rx_swbd->page_offset, in enetc_get_rx_buff()
564 return rx_swbd; in enetc_get_rx_buff()
568 struct enetc_rx_swbd *rx_swbd) in enetc_put_rx_buff() argument
570 if (likely(enetc_page_reusable(rx_swbd->page))) { in enetc_put_rx_buff()
571 rx_swbd->page_offset ^= ENETC_RXB_TRUESIZE; in enetc_put_rx_buff()
572 page_ref_inc(rx_swbd->page); in enetc_put_rx_buff()
574 enetc_reuse_page(rx_ring, rx_swbd); in enetc_put_rx_buff()
577 dma_sync_single_range_for_device(rx_ring->dev, rx_swbd->dma, in enetc_put_rx_buff()
578 rx_swbd->page_offset, in enetc_put_rx_buff()
582 dma_unmap_page(rx_ring->dev, rx_swbd->dma, in enetc_put_rx_buff()
586 rx_swbd->page = NULL; in enetc_put_rx_buff()
592 struct enetc_rx_swbd *rx_swbd = enetc_get_rx_buff(rx_ring, i, size); in enetc_map_rx_buff_to_skb() local
596 ba = page_address(rx_swbd->page) + rx_swbd->page_offset; in enetc_map_rx_buff_to_skb()
606 enetc_put_rx_buff(rx_ring, rx_swbd); in enetc_map_rx_buff_to_skb()
614 struct enetc_rx_swbd *rx_swbd = enetc_get_rx_buff(rx_ring, i, size); in enetc_add_rx_buff_to_skb() local
616 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, rx_swbd->page, in enetc_add_rx_buff_to_skb()
617 rx_swbd->page_offset, size, ENETC_RXB_TRUESIZE); in enetc_add_rx_buff_to_skb()
619 enetc_put_rx_buff(rx_ring, rx_swbd); in enetc_add_rx_buff_to_skb()
835 rxr->rx_swbd = vzalloc(rxr->bd_count * sizeof(struct enetc_rx_swbd)); in enetc_alloc_rxbdr()
836 if (!rxr->rx_swbd) in enetc_alloc_rxbdr()
841 vfree(rxr->rx_swbd); in enetc_alloc_rxbdr()
861 vfree(rxr->rx_swbd); in enetc_free_rxbdr()
862 rxr->rx_swbd = NULL; in enetc_free_rxbdr()
914 if (!rx_ring->rx_swbd) in enetc_free_rx_ring()
918 struct enetc_rx_swbd *rx_swbd = &rx_ring->rx_swbd[i]; in enetc_free_rx_ring() local
920 if (!rx_swbd->page) in enetc_free_rx_ring()
923 dma_unmap_page(rx_ring->dev, rx_swbd->dma, in enetc_free_rx_ring()
925 __free_page(rx_swbd->page); in enetc_free_rx_ring()
926 rx_swbd->page = NULL; in enetc_free_rx_ring()