[PATCH] ARM: zynq: Set bit 22 in PL310 AuxCtrl register (6395/1)

Josh Cartwright joshc at ni.com
Tue May 12 08:12:05 PDT 2015


Something tells me that Russell's patch system won't like to accept a
patch with a duplicate ID (although, I could be wrong).

On Tue, May 12, 2015 at 08:22:01AM +0200, Michal Simek wrote:
> From: Thomas Betker <thomas.betker at rohde-schwarz.com>
> 
> This patch is based on the
> commit 1a8e41cd672f ("ARM: 6395/1: VExpress: Set bit 22 in the PL310
> (cache controller) AuxCtlr register")
> 
> Clearing bit 22 in the PL310 Auxiliary Control register (shared
> attribute override enable) has the side effect of transforming Normal
> Shared Non-cacheable reads into Cacheable no-allocate reads.
> 
> Coherent DMA buffers in Linux always have a cacheable alias via the
> kernel linear mapping and the processor can speculatively load cache
> lines into the PL310 controller. With bit 22 cleared, Non-cacheable
> reads would unexpectedly hit such cache lines leading to buffer
> corruption.
> 
> For Zynq, this fix avoids memory inconsistencies between Gigabit
> Ethernet controller (GEM) and CPU when DMA_CMA is disabled.

In practice, we've seen corruption not only with the GEM but also the
UDC (and likely other things as well).  So, this patch is welcome!

> Suggested-by: Punnaiah Choudary Kalluri <punnaia at xilinx.com>
> Signed-off-by: Thomas Betker <thomas.betker at rohde-schwarz.com>
> Signed-off-by: Michal Simek <michal.simek at xilinx.com>

This feels like stable material as well, to me.  (Although, I'd expect a
bit of manual work to get it backported, with the fairly recent L2
reworking).

Thanks,
  Josh
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150512/f8e77e05/attachment.sig>


More information about the linux-arm-kernel mailing list