Lines Matching refs:rx_buffer

2155 static bool ixgbe_can_reuse_rx_page(struct ixgbe_rx_buffer *rx_buffer,  in ixgbe_can_reuse_rx_page()  argument
2158 unsigned int pagecnt_bias = rx_buffer->pagecnt_bias; in ixgbe_can_reuse_rx_page()
2159 struct page *page = rx_buffer->page; in ixgbe_can_reuse_rx_page()
2177 if (rx_buffer->page_offset > IXGBE_LAST_OFFSET) in ixgbe_can_reuse_rx_page()
2187 rx_buffer->pagecnt_bias = USHRT_MAX; in ixgbe_can_reuse_rx_page()
2209 struct ixgbe_rx_buffer *rx_buffer, in ixgbe_add_rx_frag() argument
2220 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, rx_buffer->page, in ixgbe_add_rx_frag()
2221 rx_buffer->page_offset, size, truesize); in ixgbe_add_rx_frag()
2223 rx_buffer->page_offset ^= truesize; in ixgbe_add_rx_frag()
2225 rx_buffer->page_offset += truesize; in ixgbe_add_rx_frag()
2235 struct ixgbe_rx_buffer *rx_buffer; in ixgbe_get_rx_buffer() local
2237 rx_buffer = &rx_ring->rx_buffer_info[rx_ring->next_to_clean]; in ixgbe_get_rx_buffer()
2240 page_count(rx_buffer->page); in ixgbe_get_rx_buffer()
2244 prefetchw(rx_buffer->page); in ixgbe_get_rx_buffer()
2245 *skb = rx_buffer->skb; in ixgbe_get_rx_buffer()
2261 rx_buffer->dma, in ixgbe_get_rx_buffer()
2262 rx_buffer->page_offset, in ixgbe_get_rx_buffer()
2266 rx_buffer->pagecnt_bias--; in ixgbe_get_rx_buffer()
2268 return rx_buffer; in ixgbe_get_rx_buffer()
2272 struct ixgbe_rx_buffer *rx_buffer, in ixgbe_put_rx_buffer() argument
2276 if (ixgbe_can_reuse_rx_page(rx_buffer, rx_buffer_pgcnt)) { in ixgbe_put_rx_buffer()
2278 ixgbe_reuse_rx_page(rx_ring, rx_buffer); in ixgbe_put_rx_buffer()
2280 if (skb && IXGBE_CB(skb)->dma == rx_buffer->dma) { in ixgbe_put_rx_buffer()
2285 dma_unmap_page_attrs(rx_ring->dev, rx_buffer->dma, in ixgbe_put_rx_buffer()
2290 __page_frag_cache_drain(rx_buffer->page, in ixgbe_put_rx_buffer()
2291 rx_buffer->pagecnt_bias); in ixgbe_put_rx_buffer()
2295 rx_buffer->page = NULL; in ixgbe_put_rx_buffer()
2296 rx_buffer->skb = NULL; in ixgbe_put_rx_buffer()
2300 struct ixgbe_rx_buffer *rx_buffer, in ixgbe_construct_skb() argument
2339 IXGBE_CB(skb)->dma = rx_buffer->dma; in ixgbe_construct_skb()
2341 skb_add_rx_frag(skb, 0, rx_buffer->page, in ixgbe_construct_skb()
2342 xdp->data - page_address(rx_buffer->page), in ixgbe_construct_skb()
2345 rx_buffer->page_offset ^= truesize; in ixgbe_construct_skb()
2347 rx_buffer->page_offset += truesize; in ixgbe_construct_skb()
2352 rx_buffer->pagecnt_bias++; in ixgbe_construct_skb()
2359 struct ixgbe_rx_buffer *rx_buffer, in ixgbe_build_skb() argument
2393 IXGBE_CB(skb)->dma = rx_buffer->dma; in ixgbe_build_skb()
2397 rx_buffer->page_offset ^= truesize; in ixgbe_build_skb()
2399 rx_buffer->page_offset += truesize; in ixgbe_build_skb()
2477 struct ixgbe_rx_buffer *rx_buffer, in ixgbe_rx_buffer_flip() argument
2482 rx_buffer->page_offset ^= truesize; in ixgbe_rx_buffer_flip()
2484 rx_buffer->page_offset += truesize; in ixgbe_rx_buffer_flip()
2525 struct ixgbe_rx_buffer *rx_buffer; in ixgbe_clean_rx_irq() local
2547 rx_buffer = ixgbe_get_rx_buffer(rx_ring, rx_desc, &skb, size, &rx_buffer_pgcnt); in ixgbe_clean_rx_irq()
2553 hard_start = page_address(rx_buffer->page) + in ixgbe_clean_rx_irq()
2554 rx_buffer->page_offset - offset; in ixgbe_clean_rx_irq()
2567 ixgbe_rx_buffer_flip(rx_ring, rx_buffer, size); in ixgbe_clean_rx_irq()
2569 rx_buffer->pagecnt_bias++; in ixgbe_clean_rx_irq()
2574 ixgbe_add_rx_frag(rx_ring, rx_buffer, skb, size); in ixgbe_clean_rx_irq()
2576 skb = ixgbe_build_skb(rx_ring, rx_buffer, in ixgbe_clean_rx_irq()
2579 skb = ixgbe_construct_skb(rx_ring, rx_buffer, in ixgbe_clean_rx_irq()
2586 rx_buffer->pagecnt_bias++; in ixgbe_clean_rx_irq()
2590 ixgbe_put_rx_buffer(rx_ring, rx_buffer, skb, rx_buffer_pgcnt); in ixgbe_clean_rx_irq()
5744 struct ixgbe_rx_buffer *rx_buffer = &rx_ring->rx_buffer_info[i]; in ixgbe_clean_rx_ring() local
5753 if (rx_buffer->skb) { in ixgbe_clean_rx_ring()
5754 struct sk_buff *skb = rx_buffer->skb; in ixgbe_clean_rx_ring()
5768 rx_buffer->dma, in ixgbe_clean_rx_ring()
5769 rx_buffer->page_offset, in ixgbe_clean_rx_ring()
5774 dma_unmap_page_attrs(rx_ring->dev, rx_buffer->dma, in ixgbe_clean_rx_ring()
5778 __page_frag_cache_drain(rx_buffer->page, in ixgbe_clean_rx_ring()
5779 rx_buffer->pagecnt_bias); in ixgbe_clean_rx_ring()
5782 rx_buffer++; in ixgbe_clean_rx_ring()
5785 rx_buffer = rx_ring->rx_buffer_info; in ixgbe_clean_rx_ring()