> On Mon, 14 Oct 2019 12:49:49 +0200, Lorenzo Bianconi wrote:
> > +static int mvneta_create_page_pool(struct mvneta_port *pp,
> > +                              struct mvneta_rx_queue *rxq, int size)
> > +{
> > +   struct page_pool_params pp_params = {
> > +           .order = 0,
> > +           .flags = PP_FLAG_DMA_MAP,
> > +           .pool_size = size,
> > +           .nid = cpu_to_node(0),
> > +           .dev = pp->dev->dev.parent,
> > +           .dma_dir = DMA_FROM_DEVICE,
> > +   };
> > +   int err;
> > +
> > +   rxq->page_pool = page_pool_create(&pp_params);
> > +   if (IS_ERR(rxq->page_pool)) {
> > +           err = PTR_ERR(rxq->page_pool);
> > +           rxq->page_pool = NULL;
> > +           return err;
> > +   }
> > +
> > +   err = xdp_rxq_info_reg(&rxq->xdp_rxq, pp->dev, 0);
> 
> The queue_index is always passed as 0, is there only a single queue?
> XDP programs can read this field.

Hi Jakub,

thx for the review. You are right, I will fix it in v4.

Regards,
Lorenzo

> 
> > +   if (err < 0)
> > +           goto err_free_pp;
> > +
> > +   err = xdp_rxq_info_reg_mem_model(&rxq->xdp_rxq, MEM_TYPE_PAGE_POOL,
> > +                                    rxq->page_pool);
> > +   if (err)
> > +           goto err_unregister_rxq;
> > +
> > +   return 0;
> > +
> > +err_unregister_rxq:
> > +   xdp_rxq_info_unreg(&rxq->xdp_rxq);
> > +err_free_pp:
> > +   page_pool_destroy(rxq->page_pool);
> > +   return err;
> > +}

Attachment: signature.asc
Description: PGP signature

Reply via email to