> > @@ -707,6 +731,26 @@ static int netsec_process_rx(struct netsec_priv *priv, 
> > int budget)
> >             if (unlikely(!buf_addr))
> >                     break;
> >  
> > +           if (xdp_prog) {
> > +                   xdp_result = netsec_run_xdp(desc, priv, xdp_prog,
> > +                                               pkt_len);
> > +                   if (xdp_result != NETSEC_XDP_PASS) {
> > +                           xdp_flush |= xdp_result & NETSEC_XDP_REDIR;
> > +
> > +                           dma_unmap_single_attrs(priv->dev,
> > +                                                  desc->dma_addr,
> > +                                                  desc->len, DMA_TO_DEVICE,
> > +                                                  DMA_ATTR_SKIP_CPU_SYNC);
> > +
> > +                           desc->len = desc_len;
> > +                           desc->dma_addr = dma_handle;
> > +                           desc->addr = buf_addr;
> > +                           netsec_rx_fill(priv, idx, 1);
> > +                           nsetsec_adv_desc(&dring->tail);
> > +                   }
> > +                   continue;
> 
> Continue even on XDP_PASS? Is this really correct?
> 
> Also seems there is no handling of adjust_head/tail for XDP_PASS case.
> 
A question on this. Should XDP related frames be allocated using 1 page
per packet?

Thanks

Ilias

Reply via email to