Lines Matching refs:rx_buffer
1890 struct igc_rx_buffer *rx_buffer; in igc_get_rx_buffer() local
1892 rx_buffer = &rx_ring->rx_buffer_info[rx_ring->next_to_clean]; in igc_get_rx_buffer()
1895 page_count(rx_buffer->page); in igc_get_rx_buffer()
1899 prefetchw(rx_buffer->page); in igc_get_rx_buffer()
1903 rx_buffer->dma, in igc_get_rx_buffer()
1904 rx_buffer->page_offset, in igc_get_rx_buffer()
1908 rx_buffer->pagecnt_bias--; in igc_get_rx_buffer()
1910 return rx_buffer; in igc_get_rx_buffer()
1949 struct igc_rx_buffer *rx_buffer, in igc_add_rx_frag() argument
1962 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, rx_buffer->page, in igc_add_rx_frag()
1963 rx_buffer->page_offset, size, truesize); in igc_add_rx_frag()
1965 igc_rx_buffer_flip(rx_buffer, truesize); in igc_add_rx_frag()
1969 struct igc_rx_buffer *rx_buffer, in igc_build_skb() argument
1991 igc_rx_buffer_flip(rx_buffer, truesize); in igc_build_skb()
1996 struct igc_rx_buffer *rx_buffer, in igc_construct_skb() argument
2038 skb_add_rx_frag(skb, 0, rx_buffer->page, in igc_construct_skb()
2039 (va + headlen) - page_address(rx_buffer->page), in igc_construct_skb()
2041 igc_rx_buffer_flip(rx_buffer, truesize); in igc_construct_skb()
2043 rx_buffer->pagecnt_bias++; in igc_construct_skb()
2078 static bool igc_can_reuse_rx_page(struct igc_rx_buffer *rx_buffer, in igc_can_reuse_rx_page() argument
2081 unsigned int pagecnt_bias = rx_buffer->pagecnt_bias; in igc_can_reuse_rx_page()
2082 struct page *page = rx_buffer->page; in igc_can_reuse_rx_page()
2096 if (rx_buffer->page_offset > IGC_LAST_OFFSET) in igc_can_reuse_rx_page()
2106 rx_buffer->pagecnt_bias = USHRT_MAX; in igc_can_reuse_rx_page()
2174 struct igc_rx_buffer *rx_buffer, in igc_put_rx_buffer() argument
2177 if (igc_can_reuse_rx_page(rx_buffer, rx_buffer_pgcnt)) { in igc_put_rx_buffer()
2179 igc_reuse_rx_page(rx_ring, rx_buffer); in igc_put_rx_buffer()
2184 dma_unmap_page_attrs(rx_ring->dev, rx_buffer->dma, in igc_put_rx_buffer()
2187 __page_frag_cache_drain(rx_buffer->page, in igc_put_rx_buffer()
2188 rx_buffer->pagecnt_bias); in igc_put_rx_buffer()
2192 rx_buffer->page = NULL; in igc_put_rx_buffer()
2617 struct igc_rx_buffer *rx_buffer; in igc_clean_rx_irq() local
2640 rx_buffer = igc_get_rx_buffer(rx_ring, size, &rx_buffer_pgcnt); in igc_clean_rx_irq()
2643 pktbuf = page_address(rx_buffer->page) + rx_buffer->page_offset; in igc_clean_rx_irq()
2673 rx_buffer->pagecnt_bias++; in igc_clean_rx_irq()
2677 igc_rx_buffer_flip(rx_buffer, truesize); in igc_clean_rx_irq()
2685 igc_add_rx_frag(rx_ring, rx_buffer, skb, size); in igc_clean_rx_irq()
2687 skb = igc_build_skb(rx_ring, rx_buffer, &ctx.xdp); in igc_clean_rx_irq()
2689 skb = igc_construct_skb(rx_ring, rx_buffer, &ctx); in igc_clean_rx_irq()
2694 rx_buffer->pagecnt_bias++; in igc_clean_rx_irq()
2699 igc_put_rx_buffer(rx_ring, rx_buffer, rx_buffer_pgcnt); in igc_clean_rx_irq()