Lines Matching defs:page

150 	struct page *pages;
251 * hdr is in a separate sg buffer, and data sg buffer shares same page
305 static void give_pages(struct receive_queue *rq, struct page *page)
307 struct page *end;
310 for (end = page; end->private; end = (struct page *)end->private);
312 rq->pages = page;
315 static struct page *get_a_page(struct receive_queue *rq, gfp_t gfp_mask)
317 struct page *p = rq->pages;
320 rq->pages = (struct page *)p->private;
400 struct page *page, unsigned int offset,
409 p = page_address(page) + offset;
451 skb_add_rx_frag(skb, 0, page, offset, len, truesize);
453 put_page(page);
471 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, offset,
474 page = (struct page *)page->private;
478 if (page)
479 give_pages(rq, page);
642 static struct page *xdp_linearize_page(struct receive_queue *rq,
644 struct page *p,
650 struct page *page;
655 page = alloc_page(GFP_ATOMIC);
656 if (!page)
659 memcpy(page_address(page) + page_off, page_address(p) + offset, *len);
682 memcpy(page_address(page) + page_off,
690 return page;
692 __free_pages(page, 0);
711 struct page *page = virt_to_head_page(buf);
713 struct page *xdp_page;
739 int offset = buf - page_address(page) + header_offset;
748 xdp_page = xdp_linearize_page(rq, &num_buf, page,
755 put_page(page);
756 page = xdp_page;
810 put_page(page);
831 put_page(page);
843 struct page *page = buf;
845 page_to_skb(vi, rq, page, 0, len, PAGE_SIZE, true, 0);
855 give_pages(rq, page);
870 struct page *page = virt_to_head_page(buf);
871 int offset = buf - page_address(page);
893 struct page *xdp_page;
920 page, offset,
929 xdp_page = page;
963 if (unlikely(xdp_page != page)) {
965 put_page(page);
976 if (unlikely(xdp_page != page))
983 if (unlikely(xdp_page != page))
988 if (unlikely(xdp_page != page))
989 put_page(page);
996 if (unlikely(xdp_page != page))
1001 if (unlikely(xdp_page != page))
1002 put_page(page);
1012 if (unlikely(xdp_page != page))
1019 head_skb = page_to_skb(vi, rq, page, offset, len, truesize, !xdp_prog,
1039 page = virt_to_head_page(buf);
1068 offset = buf - page_address(page);
1069 if (skb_can_coalesce(curr_skb, num_skb_frags, page, offset)) {
1070 put_page(page);
1074 skb_add_rx_frag(curr_skb, num_skb_frags, page,
1086 put_page(page);
1096 page = virt_to_head_page(buf);
1097 put_page(page);
1185 buf = (char *)page_address(alloc_frag->page) + alloc_frag->offset;
1186 get_page(alloc_frag->page);
1199 struct page *first, *list = NULL;
1205 /* page in rq->sg[MAX_SKB_FRAGS + 1] is list tail */
1215 /* chain new page in list head to match sg */
1227 /* rq->sg[0], rq->sg[1] share the same page */
1281 buf = (char *)page_address(alloc_frag->page) + alloc_frag->offset;
1283 get_page(alloc_frag->page);
2498 NL_SET_ERR_MSG_MOD(extack, "XDP expects header/data in single page, any_header_sg required");
2746 if (vi->rq[i].alloc_frag.page)
2747 put_page(vi->rq[i].alloc_frag.page);