Lines Matching refs:addr

492 					  u64 addr)  in xp_addr_crosses_non_contig_pg()  argument
494 return xp_desc_crosses_non_contig_pg(pool, addr, pool->chunk_size); in xp_addr_crosses_non_contig_pg()
497 static bool xp_check_unaligned(struct xsk_buff_pool *pool, u64 *addr) in xp_check_unaligned() argument
499 *addr = xp_unaligned_extract_addr(*addr); in xp_check_unaligned()
500 if (*addr >= pool->addrs_cnt || in xp_check_unaligned()
501 *addr + pool->chunk_size > pool->addrs_cnt || in xp_check_unaligned()
502 xp_addr_crosses_non_contig_pg(pool, *addr)) in xp_check_unaligned()
507 static bool xp_check_aligned(struct xsk_buff_pool *pool, u64 *addr) in xp_check_aligned() argument
509 *addr = xp_aligned_extract_addr(pool, *addr); in xp_check_aligned()
510 return *addr < pool->addrs_cnt; in xp_check_aligned()
513 static struct xdp_buff_xsk *xp_get_xskb(struct xsk_buff_pool *pool, u64 addr) in xp_get_xskb() argument
519 xp_init_xskb_addr(xskb, pool, addr); in xp_get_xskb()
521 xp_init_xskb_dma(xskb, pool, pool->dma_pages, addr); in xp_get_xskb()
523 xskb = &pool->heads[xp_aligned_extract_idx(pool, addr)]; in xp_get_xskb()
532 u64 addr; in __xp_alloc() local
539 if (!xskq_cons_peek_addr_unchecked(pool->fq, &addr)) { in __xp_alloc()
544 ok = pool->unaligned ? xp_check_unaligned(pool, &addr) : in __xp_alloc()
545 xp_check_aligned(pool, &addr); in __xp_alloc()
554 xskb = xp_get_xskb(pool, addr); in __xp_alloc()
599 u64 addr; in xp_alloc_new_from_fq() local
602 __xskq_cons_read_addr_unchecked(pool->fq, cached_cons++, &addr); in xp_alloc_new_from_fq()
604 ok = pool->unaligned ? xp_check_unaligned(pool, &addr) : in xp_alloc_new_from_fq()
605 xp_check_aligned(pool, &addr); in xp_alloc_new_from_fq()
612 xskb = xp_get_xskb(pool, addr); in xp_alloc_new_from_fq()
710 static u64 __xp_raw_get_addr(const struct xsk_buff_pool *pool, u64 addr) in __xp_raw_get_addr() argument
712 return pool->unaligned ? xp_unaligned_add_offset_to_addr(addr) : addr; in __xp_raw_get_addr()
715 static void *__xp_raw_get_data(const struct xsk_buff_pool *pool, u64 addr) in __xp_raw_get_data() argument
717 return pool->addrs + addr; in __xp_raw_get_data()
720 void *xp_raw_get_data(struct xsk_buff_pool *pool, u64 addr) in xp_raw_get_data() argument
722 return __xp_raw_get_data(pool, __xp_raw_get_addr(pool, addr)); in xp_raw_get_data()
726 static dma_addr_t __xp_raw_get_dma(const struct xsk_buff_pool *pool, u64 addr) in __xp_raw_get_dma() argument
728 return (pool->dma_pages[addr >> PAGE_SHIFT] & in __xp_raw_get_dma()
730 (addr & ~PAGE_MASK); in __xp_raw_get_dma()
733 dma_addr_t xp_raw_get_dma(struct xsk_buff_pool *pool, u64 addr) in xp_raw_get_dma() argument
735 return __xp_raw_get_dma(pool, __xp_raw_get_addr(pool, addr)); in xp_raw_get_dma()
751 struct xdp_desc_ctx xp_raw_get_ctx(const struct xsk_buff_pool *pool, u64 addr) in xp_raw_get_ctx() argument
755 addr = __xp_raw_get_addr(pool, addr); in xp_raw_get_ctx()
757 ret.dma = __xp_raw_get_dma(pool, addr); in xp_raw_get_ctx()
758 ret.meta = __xsk_buff_get_metadata(pool, __xp_raw_get_data(pool, addr)); in xp_raw_get_ctx()