Lines Matching defs:page
178 struct page *pages;
322 * hdr is in a separate sg buffer, and data sg buffer shares same page
387 static void give_pages(struct receive_queue *rq, struct page *page)
389 struct page *end;
392 for (end = page; end->private; end = (struct page *)end->private);
394 rq->pages = page;
397 static struct page *get_a_page(struct receive_queue *rq, gfp_t gfp_mask)
399 struct page *p = rq->pages;
402 rq->pages = (struct page *)p->private;
509 struct page *page, unsigned int offset,
516 struct page *page_to_free = NULL;
520 p = page_address(page) + offset;
543 page = (struct page *)page->private;
544 if (page)
545 give_pages(rq, page);
568 skb_add_rx_frag(skb, 0, page, offset, len, truesize);
570 page_to_free = page;
588 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, offset,
591 page = (struct page *)page->private;
595 if (page)
596 give_pages(rq, page);
609 struct page *page = virt_to_head_page(buf);
614 head = page_address(page);
633 put_page(page);
659 head = page_address(rq->alloc_frag.page);
682 head = page_address(alloc_frag->page);
690 /* Now, the new page is allocated, the last dma
712 get_page(alloc_frag->page);
724 get_page(alloc_frag->page);
1005 struct page *xdp_page;
1090 static struct page *xdp_linearize_page(struct receive_queue *rq,
1092 struct page *p,
1098 struct page *page;
1103 page = alloc_page(GFP_ATOMIC);
1104 if (!page)
1107 memcpy(page_address(page) + page_off, page_address(p) + offset, *len);
1130 memcpy(page_address(page) + page_off,
1138 return page;
1140 __free_pages(page, 0);
1182 struct page *page = virt_to_head_page(buf);
1183 struct page *xdp_page;
1197 int offset = buf - page_address(page) + header_offset;
1206 xdp_page = xdp_linearize_page(rq, &num_buf, page,
1213 put_page(page);
1214 page = xdp_page;
1251 put_page(page);
1265 struct page *page = virt_to_head_page(buf);
1299 put_page(page);
1310 struct page *page = buf;
1312 page_to_skb(vi, rq, page, 0, len, PAGE_SIZE, 0);
1322 give_pages(rq, page);
1330 struct page *page;
1343 page = virt_to_head_page(buf);
1344 put_page(page);
1414 struct page *page;
1453 page = virt_to_head_page(buf);
1454 offset = buf - page_address(page);
1464 put_page(page);
1472 skb_frag_fill_page_desc(frag, page, offset, len);
1473 if (page_is_pfmemalloc(page))
1493 struct page **page,
1500 struct page *xdp_page;
1519 return page_address(*page) + offset;
1533 *page, offset,
1549 page_address(*page) + offset, *len);
1554 put_page(*page);
1556 *page = xdp_page;
1558 return page_address(*page) + VIRTIO_XDP_HEADROOM;
1573 struct page *page = virt_to_head_page(buf);
1574 int offset = buf - page_address(page);
1583 data = mergeable_xdp_get_buf(vi, rq, xdp_prog, ctx, &frame_sz, &num_buf, &page,
1613 put_page(page);
1632 struct page *page = virt_to_head_page(buf);
1633 int offset = buf - page_address(page);
1664 head_skb = page_to_skb(vi, rq, page, offset, len, truesize, headroom);
1683 page = virt_to_head_page(buf);
1715 offset = buf - page_address(page);
1716 if (skb_can_coalesce(curr_skb, num_skb_frags, page, offset)) {
1717 put_page(page);
1721 skb_add_rx_frag(curr_skb, num_skb_frags, page,
1730 put_page(page);
1860 struct page *first, *list = NULL;
1866 /* page in rq->sg[vi->big_packets_num_skbfrags + 1] is list tail */
1876 /* chain new page in list head to match sg */
1888 /* rq->sg[0], rq->sg[1] share the same page */
3755 NL_SET_ERR_MSG_MOD(extack, "XDP expects header/data in single page, any_header_sg required");
4032 if (vi->rq[i].alloc_frag.page) {
4035 put_page(vi->rq[i].alloc_frag.page);