> 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; > > +}
signature.asc
Description: PGP signature
