Lines Matching refs:xdpf

410 void xdp_return_frame(struct xdp_frame *xdpf)  in xdp_return_frame()  argument
415 if (likely(!xdp_frame_has_frags(xdpf))) in xdp_return_frame()
418 sinfo = xdp_get_shared_info_from_frame(xdpf); in xdp_return_frame()
422 __xdp_return(page_address(page), &xdpf->mem, false, NULL); in xdp_return_frame()
425 __xdp_return(xdpf->data, &xdpf->mem, false, NULL); in xdp_return_frame()
429 void xdp_return_frame_rx_napi(struct xdp_frame *xdpf) in xdp_return_frame_rx_napi() argument
434 if (likely(!xdp_frame_has_frags(xdpf))) in xdp_return_frame_rx_napi()
437 sinfo = xdp_get_shared_info_from_frame(xdpf); in xdp_return_frame_rx_napi()
441 __xdp_return(page_address(page), &xdpf->mem, true, NULL); in xdp_return_frame_rx_napi()
444 __xdp_return(xdpf->data, &xdpf->mem, true, NULL); in xdp_return_frame_rx_napi()
472 void xdp_return_frame_bulk(struct xdp_frame *xdpf, in xdp_return_frame_bulk() argument
475 struct xdp_mem_info *mem = &xdpf->mem; in xdp_return_frame_bulk()
479 xdp_return_frame(xdpf); in xdp_return_frame_bulk()
498 if (unlikely(xdp_frame_has_frags(xdpf))) { in xdp_return_frame_bulk()
502 sinfo = xdp_get_shared_info_from_frame(xdpf); in xdp_return_frame_bulk()
511 bq->q[bq->count++] = xdpf->data; in xdp_return_frame_bulk()
548 struct xdp_frame *xdpf; in xdp_convert_zc_to_xdp_frame() local
556 if (sizeof(*xdpf) + totsize > PAGE_SIZE) in xdp_convert_zc_to_xdp_frame()
564 xdpf = addr; in xdp_convert_zc_to_xdp_frame()
565 memset(xdpf, 0, sizeof(*xdpf)); in xdp_convert_zc_to_xdp_frame()
567 addr += sizeof(*xdpf); in xdp_convert_zc_to_xdp_frame()
571 xdpf->data = addr + metasize; in xdp_convert_zc_to_xdp_frame()
572 xdpf->len = totsize - metasize; in xdp_convert_zc_to_xdp_frame()
573 xdpf->headroom = 0; in xdp_convert_zc_to_xdp_frame()
574 xdpf->metasize = metasize; in xdp_convert_zc_to_xdp_frame()
575 xdpf->frame_sz = PAGE_SIZE; in xdp_convert_zc_to_xdp_frame()
576 xdpf->mem.type = MEM_TYPE_PAGE_ORDER0; in xdp_convert_zc_to_xdp_frame()
579 return xdpf; in xdp_convert_zc_to_xdp_frame()
600 struct sk_buff *__xdp_build_skb_from_frame(struct xdp_frame *xdpf, in __xdp_build_skb_from_frame() argument
604 struct skb_shared_info *sinfo = xdp_get_shared_info_from_frame(xdpf); in __xdp_build_skb_from_frame()
610 if (unlikely(xdp_frame_has_frags(xdpf))) in __xdp_build_skb_from_frame()
614 headroom = sizeof(*xdpf) + xdpf->headroom; in __xdp_build_skb_from_frame()
619 frame_size = xdpf->frame_sz; in __xdp_build_skb_from_frame()
621 hard_start = xdpf->data - headroom; in __xdp_build_skb_from_frame()
627 __skb_put(skb, xdpf->len); in __xdp_build_skb_from_frame()
628 if (xdpf->metasize) in __xdp_build_skb_from_frame()
629 skb_metadata_set(skb, xdpf->metasize); in __xdp_build_skb_from_frame()
631 if (unlikely(xdp_frame_has_frags(xdpf))) in __xdp_build_skb_from_frame()
634 nr_frags * xdpf->frame_sz, in __xdp_build_skb_from_frame()
635 xdp_frame_is_frag_pfmemalloc(xdpf)); in __xdp_build_skb_from_frame()
646 if (xdpf->mem.type == MEM_TYPE_PAGE_POOL) in __xdp_build_skb_from_frame()
650 xdp_scrub_frame(xdpf); in __xdp_build_skb_from_frame()
656 struct sk_buff *xdp_build_skb_from_frame(struct xdp_frame *xdpf, in xdp_build_skb_from_frame() argument
667 return __xdp_build_skb_from_frame(xdpf, skb, dev); in xdp_build_skb_from_frame()
671 struct xdp_frame *xdpf_clone(struct xdp_frame *xdpf) in xdpf_clone() argument
678 headroom = xdpf->headroom + sizeof(*xdpf); in xdpf_clone()
679 totalsize = headroom + xdpf->len; in xdpf_clone()
688 memcpy(addr, xdpf, totalsize); in xdpf_clone()