Re: [PATCH] net: macb: Increment rx bd head after allocating skb and buffer

From: Harini Katakam
Date: Tue May 10 2022 - 10:40:00 EST


Hi Paolo,

On Tue, May 10, 2022 at 6:54 PM Paolo Abeni <pabeni@xxxxxxxxxx> wrote:
>
> Hello,
>
> On Mon, 2022-05-09 at 17:49 +0530, Harini Katakam wrote:
> > In gem_rx_refill rx_prepared_head is incremented at the beginning of
> > the while loop preparing the skb and data buffers. If the skb or data
> > buffer allocation fails, this BD will be unusable BDs until the head
> > loops back to the same BD (and obviously buffer allocation succeeds).
> > In the unlikely event that there's a string of allocation failures,
> > there will be an equal number of unusable BDs and an inconsistent RX
> > BD chain. Hence increment the head at the end of the while loop to be
> > clean.
> >
> > Signed-off-by: Harini Katakam <harini.katakam@xxxxxxxxxx>
> > Signed-off-by: Michal Simek <michal.simek@xxxxxxxxxx>
> > Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@xxxxxxxxxx>
>
> This looks like targeting the "net" tree, please repost adding a
> suitable Fixes tag.

Thanks for the review. This behavior would theoretically have been the
same since
GEM RX path handling was introduced ~9 yrs ago but I'm not sure since I cannot
reproduce. Probably this?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/net/ethernet/cadence?id=4df95131ea803bcb94f472d465c73ed57015c470
Also, this patch can't be backported to stable branches so far back
since the driver
files have changed. It can also be queued for net-next instead.

Regards,
Harini