Lines Matching refs:rx_buffer
7943 static bool igb_can_reuse_rx_page(struct igb_rx_buffer *rx_buffer) in igb_can_reuse_rx_page() argument
7945 unsigned int pagecnt_bias = rx_buffer->pagecnt_bias; in igb_can_reuse_rx_page()
7946 struct page *page = rx_buffer->page; in igb_can_reuse_rx_page()
7960 if (rx_buffer->page_offset > IGB_LAST_OFFSET) in igb_can_reuse_rx_page()
7970 rx_buffer->pagecnt_bias = USHRT_MAX; in igb_can_reuse_rx_page()
7986 struct igb_rx_buffer *rx_buffer, in igb_add_rx_frag() argument
7997 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, rx_buffer->page, in igb_add_rx_frag()
7998 rx_buffer->page_offset, size, truesize); in igb_add_rx_frag()
8000 rx_buffer->page_offset ^= truesize; in igb_add_rx_frag()
8002 rx_buffer->page_offset += truesize; in igb_add_rx_frag()
8007 struct igb_rx_buffer *rx_buffer, in igb_construct_skb() argument
8011 void *va = page_address(rx_buffer->page) + rx_buffer->page_offset; in igb_construct_skb()
8048 skb_add_rx_frag(skb, 0, rx_buffer->page, in igb_construct_skb()
8049 (va + headlen) - page_address(rx_buffer->page), in igb_construct_skb()
8052 rx_buffer->page_offset ^= truesize; in igb_construct_skb()
8054 rx_buffer->page_offset += truesize; in igb_construct_skb()
8057 rx_buffer->pagecnt_bias++; in igb_construct_skb()
8064 struct igb_rx_buffer *rx_buffer, in igb_build_skb() argument
8068 void *va = page_address(rx_buffer->page) + rx_buffer->page_offset; in igb_build_skb()
8100 rx_buffer->page_offset ^= truesize; in igb_build_skb()
8102 rx_buffer->page_offset += truesize; in igb_build_skb()
8265 struct igb_rx_buffer *rx_buffer; in igb_get_rx_buffer() local
8267 rx_buffer = &rx_ring->rx_buffer_info[rx_ring->next_to_clean]; in igb_get_rx_buffer()
8268 prefetchw(rx_buffer->page); in igb_get_rx_buffer()
8272 rx_buffer->dma, in igb_get_rx_buffer()
8273 rx_buffer->page_offset, in igb_get_rx_buffer()
8277 rx_buffer->pagecnt_bias--; in igb_get_rx_buffer()
8279 return rx_buffer; in igb_get_rx_buffer()
8283 struct igb_rx_buffer *rx_buffer) in igb_put_rx_buffer() argument
8285 if (igb_can_reuse_rx_page(rx_buffer)) { in igb_put_rx_buffer()
8287 igb_reuse_rx_page(rx_ring, rx_buffer); in igb_put_rx_buffer()
8292 dma_unmap_page_attrs(rx_ring->dev, rx_buffer->dma, in igb_put_rx_buffer()
8295 __page_frag_cache_drain(rx_buffer->page, in igb_put_rx_buffer()
8296 rx_buffer->pagecnt_bias); in igb_put_rx_buffer()
8300 rx_buffer->page = NULL; in igb_put_rx_buffer()
8312 struct igb_rx_buffer *rx_buffer; in igb_clean_rx_irq() local
8332 rx_buffer = igb_get_rx_buffer(rx_ring, size); in igb_clean_rx_irq()
8336 igb_add_rx_frag(rx_ring, rx_buffer, skb, size); in igb_clean_rx_irq()
8338 skb = igb_build_skb(rx_ring, rx_buffer, rx_desc, size); in igb_clean_rx_irq()
8340 skb = igb_construct_skb(rx_ring, rx_buffer, in igb_clean_rx_irq()
8346 rx_buffer->pagecnt_bias++; in igb_clean_rx_irq()
8350 igb_put_rx_buffer(rx_ring, rx_buffer); in igb_clean_rx_irq()