Lines Matching refs:xskb
60 struct xdp_buff_xsk *xskb;
99 xskb = &pool->heads[i];
100 xskb->pool = pool;
101 xskb->xdp.frame_sz = umem->chunk_size - umem->headroom;
102 INIT_LIST_HEAD(&xskb->free_list_node);
103 INIT_LIST_HEAD(&xskb->xskb_list_node);
105 pool->free_heads[i] = xskb;
107 xp_init_xskb_addr(xskb, pool, i * pool->chunk_size);
401 struct xdp_buff_xsk *xskb = &pool->heads[i];
403 xp_init_xskb_dma(xskb, pool, dma_map->dma_pages, xskb->orig_addr);
491 struct xdp_buff_xsk *xskb;
515 xskb = pool->free_heads[--pool->free_heads_cnt];
516 xp_init_xskb_addr(xskb, pool, addr);
518 xp_init_xskb_dma(xskb, pool, pool->dma_pages, addr);
520 xskb = &pool->heads[xp_aligned_extract_idx(pool, addr)];
524 return xskb;
529 struct xdp_buff_xsk *xskb;
532 xskb = __xp_alloc(pool);
533 if (!xskb)
537 xskb = list_first_entry(&pool->free_list, struct xdp_buff_xsk,
539 list_del_init(&xskb->free_list_node);
542 xskb->xdp.data = xskb->xdp.data_hard_start + XDP_PACKET_HEADROOM;
543 xskb->xdp.data_meta = xskb->xdp.data;
544 xskb->xdp.flags = 0;
547 dma_sync_single_range_for_device(pool->dev, xskb->dma, 0,
551 return &xskb->xdp;
567 struct xdp_buff_xsk *xskb;
582 xskb = pool->free_heads[--pool->free_heads_cnt];
583 xp_init_xskb_addr(xskb, pool, addr);
585 xp_init_xskb_dma(xskb, pool, pool->dma_pages, addr);
587 xskb = &pool->heads[xp_aligned_extract_idx(pool, addr)];
590 *xdp = &xskb->xdp;
600 struct xdp_buff_xsk *xskb;
607 xskb = list_first_entry(&pool->free_list, struct xdp_buff_xsk, free_list_node);
608 list_del_init(&xskb->free_list_node);
610 *xdp = &xskb->xdp;
657 void xp_free(struct xdp_buff_xsk *xskb)
659 if (!list_empty(&xskb->free_list_node))
662 xskb->pool->free_list_cnt++;
663 list_add(&xskb->free_list_node, &xskb->pool->free_list);
683 void xp_dma_sync_for_cpu_slow(struct xdp_buff_xsk *xskb)
685 dma_sync_single_range_for_cpu(xskb->pool->dev, xskb->dma, 0,
686 xskb->pool->frame_len, DMA_BIDIRECTIONAL);