Lines Matching refs:rx_buffer
1171 static bool iavf_can_reuse_rx_page(struct iavf_rx_buffer *rx_buffer) in iavf_can_reuse_rx_page() argument
1173 unsigned int pagecnt_bias = rx_buffer->pagecnt_bias; in iavf_can_reuse_rx_page()
1174 struct page *page = rx_buffer->page; in iavf_can_reuse_rx_page()
1187 if (rx_buffer->page_offset > IAVF_LAST_OFFSET) in iavf_can_reuse_rx_page()
1197 rx_buffer->pagecnt_bias = USHRT_MAX; in iavf_can_reuse_rx_page()
1216 struct iavf_rx_buffer *rx_buffer, in iavf_add_rx_frag() argument
1229 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, rx_buffer->page, in iavf_add_rx_frag()
1230 rx_buffer->page_offset, size, truesize); in iavf_add_rx_frag()
1234 rx_buffer->page_offset ^= truesize; in iavf_add_rx_frag()
1236 rx_buffer->page_offset += truesize; in iavf_add_rx_frag()
1251 struct iavf_rx_buffer *rx_buffer; in iavf_get_rx_buffer() local
1256 rx_buffer = &rx_ring->rx_bi[rx_ring->next_to_clean]; in iavf_get_rx_buffer()
1257 prefetchw(rx_buffer->page); in iavf_get_rx_buffer()
1261 rx_buffer->dma, in iavf_get_rx_buffer()
1262 rx_buffer->page_offset, in iavf_get_rx_buffer()
1267 rx_buffer->pagecnt_bias--; in iavf_get_rx_buffer()
1269 return rx_buffer; in iavf_get_rx_buffer()
1283 struct iavf_rx_buffer *rx_buffer, in iavf_construct_skb() argument
1295 if (!rx_buffer) in iavf_construct_skb()
1298 va = page_address(rx_buffer->page) + rx_buffer->page_offset; in iavf_construct_skb()
1319 skb_add_rx_frag(skb, 0, rx_buffer->page, in iavf_construct_skb()
1320 rx_buffer->page_offset + headlen, in iavf_construct_skb()
1325 rx_buffer->page_offset ^= truesize; in iavf_construct_skb()
1327 rx_buffer->page_offset += truesize; in iavf_construct_skb()
1331 rx_buffer->pagecnt_bias++; in iavf_construct_skb()
1347 struct iavf_rx_buffer *rx_buffer, in iavf_build_skb() argument
1359 if (!rx_buffer) in iavf_build_skb()
1362 va = page_address(rx_buffer->page) + rx_buffer->page_offset; in iavf_build_skb()
1376 rx_buffer->page_offset ^= truesize; in iavf_build_skb()
1378 rx_buffer->page_offset += truesize; in iavf_build_skb()
1393 struct iavf_rx_buffer *rx_buffer) in iavf_put_rx_buffer() argument
1395 if (!rx_buffer) in iavf_put_rx_buffer()
1398 if (iavf_can_reuse_rx_page(rx_buffer)) { in iavf_put_rx_buffer()
1400 iavf_reuse_rx_page(rx_ring, rx_buffer); in iavf_put_rx_buffer()
1404 dma_unmap_page_attrs(rx_ring->dev, rx_buffer->dma, in iavf_put_rx_buffer()
1407 __page_frag_cache_drain(rx_buffer->page, in iavf_put_rx_buffer()
1408 rx_buffer->pagecnt_bias); in iavf_put_rx_buffer()
1412 rx_buffer->page = NULL; in iavf_put_rx_buffer()
1468 struct iavf_rx_buffer *rx_buffer; in iavf_clean_rx_irq() local
1504 rx_buffer = iavf_get_rx_buffer(rx_ring, size); in iavf_clean_rx_irq()
1508 iavf_add_rx_frag(rx_ring, rx_buffer, skb, size); in iavf_clean_rx_irq()
1510 skb = iavf_build_skb(rx_ring, rx_buffer, size); in iavf_clean_rx_irq()
1512 skb = iavf_construct_skb(rx_ring, rx_buffer, size); in iavf_clean_rx_irq()
1517 if (rx_buffer) in iavf_clean_rx_irq()
1518 rx_buffer->pagecnt_bias++; in iavf_clean_rx_irq()
1522 iavf_put_rx_buffer(rx_ring, rx_buffer); in iavf_clean_rx_irq()