Re: [PATCH] stmmac: explicitly zero des0 & des1 on init

Alexey Brodkin
2015-06-22T06:43:29Z

Hi David,

On Sun, 2015-06-21 at 09:29 -0700, David Miller wrote:
> From: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
> Date: Tue, 16 Jun 2015 20:40:41 +0300
>
> > Current implementtion of descriptor init procedure only takes care
> > about
> > ownership flag. While it is perfectly possible to have underlying
> > memory
> > filled with garbage on boot or driver installation.
> >
> > And randomly set flags in non-zeroed des0 and des1 fields may lead
> > to
> > unpredictable behavior of the GMAC DMA block.
> >
> > Solution to this problem is as simple as explicit zeroing of both
> > des0
> > and des1 fields of all buffer descriptors.
> >
> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
>
> If you need the memory zero initialized, use dma_zalloc_coherent().

Indeed usage of dma_zalloc_coherent() will resolve observed issue.
But since buffer descriptors are reused extensively I would say that
explicit zeroing of fields with flags is useful. Probably I need to add
this clarification in commit message.

And then if we do that explicit zeroing of flags and other fields which
hold data size and addresses of data buffer and the next descriptor in
chain are all get set later we may not care about allocation of zeroed
memory.

-Alexey--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
Please read the FAQ at http://www.tux.org/lkml/