> -----Original Message-----
> From: Jakub Kicinski <[email protected]>
> Sent: 2021年2月7日 4:38
> To: Joakim Zhang <[email protected]>
> Cc: [email protected]; [email protected];
> [email protected]; [email protected]; [email protected];
> dl-linux-imx <[email protected]>
> Subject: Re: [PATCH V4 net 5/5] net: stmmac: re-init rx buffers when mac
> resume back
> 
> On Thu,  4 Feb 2021 19:21:44 +0800 Joakim Zhang wrote:
> > +err_reinit_rx_buffers:
> > +   while (queue >= 0) {
> > +           while (--i >= 0)
> > +                   stmmac_free_rx_buffer(priv, queue, i);
> > +
> > +           if (queue == 0)
> > +                   break;
> > +
> > +           i = priv->dma_rx_size;
> > +           queue--;
> > +   }
> 
> nit:
> 
>       do {
>               ...
>       } while (queue-- > 0);

OK, will change it.

> > +
> > +   return -ENOMEM;
> 
> the caller ignores the return value anyway, so you make make this function
> void.

OK.

> I'm not sure why you recycle and reallocate every buffer. Isn't it enough to
> reinitialize the descriptors with the buffers which are already allocated?

As I know, the receive buffer address is not fixed after allocated, it will 
recycle and re-allocate in stmmac_rx(), where to handle the receive buffers.
It should be enough to re-initialize the descriptors with the buffers if it is 
possible. Could you point me how to do it?

Best Regards,
Joakim Zhang

Reply via email to