Lines Matching refs:rx_buffer
1983 static bool i40e_can_reuse_rx_page(struct i40e_rx_buffer *rx_buffer, in i40e_can_reuse_rx_page() argument
1987 unsigned int pagecnt_bias = rx_buffer->pagecnt_bias; in i40e_can_reuse_rx_page()
1988 struct page *page = rx_buffer->page; in i40e_can_reuse_rx_page()
2005 if (rx_buffer->page_offset > I40E_LAST_OFFSET) { in i40e_can_reuse_rx_page()
2017 rx_buffer->pagecnt_bias = USHRT_MAX; in i40e_can_reuse_rx_page()
2036 struct i40e_rx_buffer *rx_buffer, in i40e_add_rx_frag() argument
2046 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, rx_buffer->page, in i40e_add_rx_frag()
2047 rx_buffer->page_offset, size, truesize); in i40e_add_rx_frag()
2051 rx_buffer->page_offset ^= truesize; in i40e_add_rx_frag()
2053 rx_buffer->page_offset += truesize; in i40e_add_rx_frag()
2070 struct i40e_rx_buffer *rx_buffer; in i40e_get_rx_buffer() local
2072 rx_buffer = i40e_rx_bi(rx_ring, rx_ring->next_to_clean); in i40e_get_rx_buffer()
2075 page_count(rx_buffer->page); in i40e_get_rx_buffer()
2079 prefetch_page_address(rx_buffer->page); in i40e_get_rx_buffer()
2083 rx_buffer->dma, in i40e_get_rx_buffer()
2084 rx_buffer->page_offset, in i40e_get_rx_buffer()
2089 rx_buffer->pagecnt_bias--; in i40e_get_rx_buffer()
2091 return rx_buffer; in i40e_get_rx_buffer()
2105 struct i40e_rx_buffer *rx_buffer, in i40e_construct_skb() argument
2156 skb_add_rx_frag(skb, 0, rx_buffer->page, in i40e_construct_skb()
2157 rx_buffer->page_offset + headlen, in i40e_construct_skb()
2162 rx_buffer->page_offset ^= truesize; in i40e_construct_skb()
2164 rx_buffer->page_offset += truesize; in i40e_construct_skb()
2168 rx_buffer->pagecnt_bias++; in i40e_construct_skb()
2184 struct i40e_rx_buffer *rx_buffer, in i40e_build_skb() argument
2217 rx_buffer->page_offset ^= truesize; in i40e_build_skb()
2219 rx_buffer->page_offset += truesize; in i40e_build_skb()
2235 struct i40e_rx_buffer *rx_buffer, in i40e_put_rx_buffer() argument
2238 if (i40e_can_reuse_rx_page(rx_buffer, &rx_ring->rx_stats, rx_buffer_pgcnt)) { in i40e_put_rx_buffer()
2240 i40e_reuse_rx_page(rx_ring, rx_buffer); in i40e_put_rx_buffer()
2243 dma_unmap_page_attrs(rx_ring->dev, rx_buffer->dma, in i40e_put_rx_buffer()
2246 __page_frag_cache_drain(rx_buffer->page, in i40e_put_rx_buffer()
2247 rx_buffer->pagecnt_bias); in i40e_put_rx_buffer()
2249 rx_buffer->page = NULL; in i40e_put_rx_buffer()
2342 struct i40e_rx_buffer *rx_buffer, in i40e_rx_buffer_flip() argument
2348 rx_buffer->page_offset ^= truesize; in i40e_rx_buffer_flip()
2350 rx_buffer->page_offset += truesize; in i40e_rx_buffer_flip()
2458 struct i40e_rx_buffer *rx_buffer; in i40e_clean_rx_irq() local
2490 rx_buffer = i40e_rx_bi(rx_ring, rx_ring->next_to_clean); in i40e_clean_rx_irq()
2492 i40e_reuse_rx_page(rx_ring, rx_buffer); in i40e_clean_rx_irq()
2503 rx_buffer = i40e_get_rx_buffer(rx_ring, size, &rx_buffer_pgcnt); in i40e_clean_rx_irq()
2509 hard_start = page_address(rx_buffer->page) + in i40e_clean_rx_irq()
2510 rx_buffer->page_offset - offset; in i40e_clean_rx_irq()
2523 i40e_rx_buffer_flip(rx_ring, rx_buffer, size); in i40e_clean_rx_irq()
2525 rx_buffer->pagecnt_bias++; in i40e_clean_rx_irq()
2530 i40e_add_rx_frag(rx_ring, rx_buffer, skb, size); in i40e_clean_rx_irq()
2532 skb = i40e_build_skb(rx_ring, rx_buffer, &xdp); in i40e_clean_rx_irq()
2534 skb = i40e_construct_skb(rx_ring, rx_buffer, &xdp); in i40e_clean_rx_irq()
2540 rx_buffer->pagecnt_bias++; in i40e_clean_rx_irq()
2544 i40e_put_rx_buffer(rx_ring, rx_buffer, rx_buffer_pgcnt); in i40e_clean_rx_irq()