On Thu, 21 Mar 2019 17:18:41 +0800 Xiaolong Ye <xiaolong...@intel.com> wrote:
> + > +static inline int > +reserve_fill_queue(struct xsk_umem_info *umem, int reserve_size) > +{ > + struct xsk_ring_prod *fq = &umem->fq; > + uint32_t idx; > + void *addr = NULL; > + int i, ret; > + > + ret = xsk_ring_prod__reserve(fq, reserve_size, &idx); > + if (!ret) { > + RTE_LOG(ERR, AF_XDP, "Failed to reserve enough fq descs.\n"); > + return ret; > + } > + > + for (i = 0; i < reserve_size; i++) { > + __u64 *fq_addr; > + rte_ring_dequeue(umem->buf_ring, &addr); You should check return value of dequeue, otherwise static checkers will (rightly) complain that "everyone else checks return value of of rte_ring_dequeue() why not here?"