On 03/24, Ye Xiaolong wrote: >>> - ret = xsk_umem__create(&umem->umem, bufs, >>> + ret = xsk_umem__create(&umem->umem, base_addr, >>> ETH_AF_XDP_NUM_BUFFERS * ETH_AF_XDP_FRAME_SIZE, >>> &umem->fq, &umem->cq, >>> &usr_config); >>> @@ -499,7 +527,7 @@ static struct xsk_umem_info *xdp_umem_configure(void) >>> AF_XDP_LOG(ERR, "Failed to create umem"); >>> goto err; >> >>You need to destroy mb_pool if xsk_umem__create() fails. > >Will do.
Correction, mp_pool destrcttion has alrealy been hanled in xdp_umem_destory. Thanks, Xiaolong > >Thanks, >Xiaolong >> >>> } >>> - umem->buffer = bufs; >>> + umem->buffer = base_addr; >>> return umem; >>> @@ -912,10 +940,9 @@ rte_pmd_af_xdp_remove(struct rte_vdev_device *dev) >>> internals = eth_dev->data->dev_private; >>> - rte_ring_free(internals->umem->buf_ring); >>> - rte_free(internals->umem->buffer); >>> rte_free(internals->umem); >>> + rte_mempool_free(internals->umem->mb_pool); >>> rte_eth_dev_release_port(eth_dev); >>>