Lines Matching refs:rx_buffer

1184 static bool iavf_can_reuse_rx_page(struct iavf_rx_buffer *rx_buffer)  in iavf_can_reuse_rx_page()  argument
1186 unsigned int pagecnt_bias = rx_buffer->pagecnt_bias; in iavf_can_reuse_rx_page()
1187 struct page *page = rx_buffer->page; in iavf_can_reuse_rx_page()
1200 if (rx_buffer->page_offset > IAVF_LAST_OFFSET) in iavf_can_reuse_rx_page()
1210 rx_buffer->pagecnt_bias = USHRT_MAX; in iavf_can_reuse_rx_page()
1229 struct iavf_rx_buffer *rx_buffer, in iavf_add_rx_frag() argument
1242 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, rx_buffer->page, in iavf_add_rx_frag()
1243 rx_buffer->page_offset, size, truesize); in iavf_add_rx_frag()
1247 rx_buffer->page_offset ^= truesize; in iavf_add_rx_frag()
1249 rx_buffer->page_offset += truesize; in iavf_add_rx_frag()
1264 struct iavf_rx_buffer *rx_buffer; in iavf_get_rx_buffer() local
1269 rx_buffer = &rx_ring->rx_bi[rx_ring->next_to_clean]; in iavf_get_rx_buffer()
1270 prefetchw(rx_buffer->page); in iavf_get_rx_buffer()
1274 rx_buffer->dma, in iavf_get_rx_buffer()
1275 rx_buffer->page_offset, in iavf_get_rx_buffer()
1280 rx_buffer->pagecnt_bias--; in iavf_get_rx_buffer()
1282 return rx_buffer; in iavf_get_rx_buffer()
1296 struct iavf_rx_buffer *rx_buffer, in iavf_construct_skb() argument
1308 if (!rx_buffer) in iavf_construct_skb()
1311 va = page_address(rx_buffer->page) + rx_buffer->page_offset; in iavf_construct_skb()
1335 skb_add_rx_frag(skb, 0, rx_buffer->page, in iavf_construct_skb()
1336 rx_buffer->page_offset + headlen, in iavf_construct_skb()
1341 rx_buffer->page_offset ^= truesize; in iavf_construct_skb()
1343 rx_buffer->page_offset += truesize; in iavf_construct_skb()
1347 rx_buffer->pagecnt_bias++; in iavf_construct_skb()
1363 struct iavf_rx_buffer *rx_buffer, in iavf_build_skb() argument
1375 if (!rx_buffer) in iavf_build_skb()
1378 va = page_address(rx_buffer->page) + rx_buffer->page_offset; in iavf_build_skb()
1394 rx_buffer->page_offset ^= truesize; in iavf_build_skb()
1396 rx_buffer->page_offset += truesize; in iavf_build_skb()
1411 struct iavf_rx_buffer *rx_buffer) in iavf_put_rx_buffer() argument
1413 if (!rx_buffer) in iavf_put_rx_buffer()
1416 if (iavf_can_reuse_rx_page(rx_buffer)) { in iavf_put_rx_buffer()
1418 iavf_reuse_rx_page(rx_ring, rx_buffer); in iavf_put_rx_buffer()
1422 dma_unmap_page_attrs(rx_ring->dev, rx_buffer->dma, in iavf_put_rx_buffer()
1425 __page_frag_cache_drain(rx_buffer->page, in iavf_put_rx_buffer()
1426 rx_buffer->pagecnt_bias); in iavf_put_rx_buffer()
1430 rx_buffer->page = NULL; in iavf_put_rx_buffer()
1486 struct iavf_rx_buffer *rx_buffer; in iavf_clean_rx_irq() local
1522 rx_buffer = iavf_get_rx_buffer(rx_ring, size); in iavf_clean_rx_irq()
1526 iavf_add_rx_frag(rx_ring, rx_buffer, skb, size); in iavf_clean_rx_irq()
1528 skb = iavf_build_skb(rx_ring, rx_buffer, size); in iavf_clean_rx_irq()
1530 skb = iavf_construct_skb(rx_ring, rx_buffer, size); in iavf_clean_rx_irq()
1535 if (rx_buffer) in iavf_clean_rx_irq()
1536 rx_buffer->pagecnt_bias++; in iavf_clean_rx_irq()
1540 iavf_put_rx_buffer(rx_ring, rx_buffer); in iavf_clean_rx_irq()