Lines Matching refs:xdpf
407 void xdp_return_frame(struct xdp_frame *xdpf) in xdp_return_frame() argument
412 if (likely(!xdp_frame_has_frags(xdpf))) in xdp_return_frame()
415 sinfo = xdp_get_shared_info_from_frame(xdpf); in xdp_return_frame()
419 __xdp_return(page_address(page), &xdpf->mem, false, NULL); in xdp_return_frame()
422 __xdp_return(xdpf->data, &xdpf->mem, false, NULL); in xdp_return_frame()
426 void xdp_return_frame_rx_napi(struct xdp_frame *xdpf) in xdp_return_frame_rx_napi() argument
431 if (likely(!xdp_frame_has_frags(xdpf))) in xdp_return_frame_rx_napi()
434 sinfo = xdp_get_shared_info_from_frame(xdpf); in xdp_return_frame_rx_napi()
438 __xdp_return(page_address(page), &xdpf->mem, true, NULL); in xdp_return_frame_rx_napi()
441 __xdp_return(xdpf->data, &xdpf->mem, true, NULL); in xdp_return_frame_rx_napi()
469 void xdp_return_frame_bulk(struct xdp_frame *xdpf, in xdp_return_frame_bulk() argument
472 struct xdp_mem_info *mem = &xdpf->mem; in xdp_return_frame_bulk()
476 xdp_return_frame(xdpf); in xdp_return_frame_bulk()
495 if (unlikely(xdp_frame_has_frags(xdpf))) { in xdp_return_frame_bulk()
499 sinfo = xdp_get_shared_info_from_frame(xdpf); in xdp_return_frame_bulk()
508 bq->q[bq->count++] = xdpf->data; in xdp_return_frame_bulk()
545 struct xdp_frame *xdpf; in xdp_convert_zc_to_xdp_frame() local
553 if (sizeof(*xdpf) + totsize > PAGE_SIZE) in xdp_convert_zc_to_xdp_frame()
561 xdpf = addr; in xdp_convert_zc_to_xdp_frame()
562 memset(xdpf, 0, sizeof(*xdpf)); in xdp_convert_zc_to_xdp_frame()
564 addr += sizeof(*xdpf); in xdp_convert_zc_to_xdp_frame()
568 xdpf->data = addr + metasize; in xdp_convert_zc_to_xdp_frame()
569 xdpf->len = totsize - metasize; in xdp_convert_zc_to_xdp_frame()
570 xdpf->headroom = 0; in xdp_convert_zc_to_xdp_frame()
571 xdpf->metasize = metasize; in xdp_convert_zc_to_xdp_frame()
572 xdpf->frame_sz = PAGE_SIZE; in xdp_convert_zc_to_xdp_frame()
573 xdpf->mem.type = MEM_TYPE_PAGE_ORDER0; in xdp_convert_zc_to_xdp_frame()
576 return xdpf; in xdp_convert_zc_to_xdp_frame()
597 struct sk_buff *__xdp_build_skb_from_frame(struct xdp_frame *xdpf, in __xdp_build_skb_from_frame() argument
601 struct skb_shared_info *sinfo = xdp_get_shared_info_from_frame(xdpf); in __xdp_build_skb_from_frame()
607 if (unlikely(xdp_frame_has_frags(xdpf))) in __xdp_build_skb_from_frame()
611 headroom = sizeof(*xdpf) + xdpf->headroom; in __xdp_build_skb_from_frame()
616 frame_size = xdpf->frame_sz; in __xdp_build_skb_from_frame()
618 hard_start = xdpf->data - headroom; in __xdp_build_skb_from_frame()
624 __skb_put(skb, xdpf->len); in __xdp_build_skb_from_frame()
625 if (xdpf->metasize) in __xdp_build_skb_from_frame()
626 skb_metadata_set(skb, xdpf->metasize); in __xdp_build_skb_from_frame()
628 if (unlikely(xdp_frame_has_frags(xdpf))) in __xdp_build_skb_from_frame()
631 nr_frags * xdpf->frame_sz, in __xdp_build_skb_from_frame()
632 xdp_frame_is_frag_pfmemalloc(xdpf)); in __xdp_build_skb_from_frame()
643 if (xdpf->mem.type == MEM_TYPE_PAGE_POOL) in __xdp_build_skb_from_frame()
647 xdp_scrub_frame(xdpf); in __xdp_build_skb_from_frame()
653 struct sk_buff *xdp_build_skb_from_frame(struct xdp_frame *xdpf, in xdp_build_skb_from_frame() argument
664 return __xdp_build_skb_from_frame(xdpf, skb, dev); in xdp_build_skb_from_frame()
668 struct xdp_frame *xdpf_clone(struct xdp_frame *xdpf) in xdpf_clone() argument
675 headroom = xdpf->headroom + sizeof(*xdpf); in xdpf_clone()
676 totalsize = headroom + xdpf->len; in xdpf_clone()
685 memcpy(addr, xdpf, totalsize); in xdpf_clone()