Lines Matching refs:xdpf

408 void xdp_return_frame(struct xdp_frame *xdpf)  in xdp_return_frame()  argument
413 if (likely(!xdp_frame_has_frags(xdpf))) in xdp_return_frame()
416 sinfo = xdp_get_shared_info_from_frame(xdpf); in xdp_return_frame()
420 __xdp_return(page_address(page), &xdpf->mem, false, NULL); in xdp_return_frame()
423 __xdp_return(xdpf->data, &xdpf->mem, false, NULL); in xdp_return_frame()
427 void xdp_return_frame_rx_napi(struct xdp_frame *xdpf) in xdp_return_frame_rx_napi() argument
432 if (likely(!xdp_frame_has_frags(xdpf))) in xdp_return_frame_rx_napi()
435 sinfo = xdp_get_shared_info_from_frame(xdpf); in xdp_return_frame_rx_napi()
439 __xdp_return(page_address(page), &xdpf->mem, true, NULL); in xdp_return_frame_rx_napi()
442 __xdp_return(xdpf->data, &xdpf->mem, true, NULL); in xdp_return_frame_rx_napi()
470 void xdp_return_frame_bulk(struct xdp_frame *xdpf, in xdp_return_frame_bulk() argument
473 struct xdp_mem_info *mem = &xdpf->mem; in xdp_return_frame_bulk()
477 xdp_return_frame(xdpf); in xdp_return_frame_bulk()
496 if (unlikely(xdp_frame_has_frags(xdpf))) { in xdp_return_frame_bulk()
500 sinfo = xdp_get_shared_info_from_frame(xdpf); in xdp_return_frame_bulk()
509 bq->q[bq->count++] = xdpf->data; in xdp_return_frame_bulk()
561 struct xdp_frame *xdpf; in xdp_convert_zc_to_xdp_frame() local
569 if (sizeof(*xdpf) + totsize > PAGE_SIZE) in xdp_convert_zc_to_xdp_frame()
577 xdpf = addr; in xdp_convert_zc_to_xdp_frame()
578 memset(xdpf, 0, sizeof(*xdpf)); in xdp_convert_zc_to_xdp_frame()
580 addr += sizeof(*xdpf); in xdp_convert_zc_to_xdp_frame()
584 xdpf->data = addr + metasize; in xdp_convert_zc_to_xdp_frame()
585 xdpf->len = totsize - metasize; in xdp_convert_zc_to_xdp_frame()
586 xdpf->headroom = 0; in xdp_convert_zc_to_xdp_frame()
587 xdpf->metasize = metasize; in xdp_convert_zc_to_xdp_frame()
588 xdpf->frame_sz = PAGE_SIZE; in xdp_convert_zc_to_xdp_frame()
589 xdpf->mem.type = MEM_TYPE_PAGE_ORDER0; in xdp_convert_zc_to_xdp_frame()
592 return xdpf; in xdp_convert_zc_to_xdp_frame()
614 struct sk_buff *__xdp_build_skb_from_frame(struct xdp_frame *xdpf, in __xdp_build_skb_from_frame() argument
618 struct skb_shared_info *sinfo = xdp_get_shared_info_from_frame(xdpf); in __xdp_build_skb_from_frame()
624 if (unlikely(xdp_frame_has_frags(xdpf))) in __xdp_build_skb_from_frame()
628 headroom = sizeof(*xdpf) + xdpf->headroom; in __xdp_build_skb_from_frame()
633 frame_size = xdpf->frame_sz; in __xdp_build_skb_from_frame()
635 hard_start = xdpf->data - headroom; in __xdp_build_skb_from_frame()
641 __skb_put(skb, xdpf->len); in __xdp_build_skb_from_frame()
642 if (xdpf->metasize) in __xdp_build_skb_from_frame()
643 skb_metadata_set(skb, xdpf->metasize); in __xdp_build_skb_from_frame()
645 if (unlikely(xdp_frame_has_frags(xdpf))) in __xdp_build_skb_from_frame()
648 nr_frags * xdpf->frame_sz, in __xdp_build_skb_from_frame()
649 xdp_frame_is_frag_pfmemalloc(xdpf)); in __xdp_build_skb_from_frame()
661 xdp_release_frame(xdpf); in __xdp_build_skb_from_frame()
664 xdp_scrub_frame(xdpf); in __xdp_build_skb_from_frame()
670 struct sk_buff *xdp_build_skb_from_frame(struct xdp_frame *xdpf, in xdp_build_skb_from_frame() argument
681 return __xdp_build_skb_from_frame(xdpf, skb, dev); in xdp_build_skb_from_frame()
685 struct xdp_frame *xdpf_clone(struct xdp_frame *xdpf) in xdpf_clone() argument
692 headroom = xdpf->headroom + sizeof(*xdpf); in xdpf_clone()
693 totalsize = headroom + xdpf->len; in xdpf_clone()
702 memcpy(addr, xdpf, totalsize); in xdpf_clone()