]> git.baikalelectronics.ru Git - kernel.git/commit
ARM: 6535/1: V6 MPCore v6_dma_inv_range and v6_dma_flush_range RWFO fix
authorValentine Barshak <vbarshak@mvista.com>
Mon, 13 Dec 2010 23:03:16 +0000 (00:03 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 14 Dec 2010 22:23:34 +0000 (22:23 +0000)
commitfd0baeeba995cfd7238e81bdbcfd7b68cc79affd
treea403ad0cfc2c8d6dbeebc85d5332922410d2347c
parent8c305db61b12152344bb33e6bc786c35b7116b82
ARM: 6535/1: V6 MPCore v6_dma_inv_range and v6_dma_flush_range RWFO fix

Cache ownership must be acquired by reading/writing data from the
cache line to make cache operation have the desired effect on the
SMP MPCore CPU. However, the ownership is never acquired in the
v6_dma_inv_range function when cleaning the first line and
flushing the last one, in case the address is not aligned
to D_CACHE_LINE_SIZE boundary.
Fix this by reading/writing data if needed, before performing
cache operations.
While at it, fix v6_dma_flush_range to prevent RWFO outside
the buffer.

Cc: stable@kernel.org
Signed-off-by: Valentine Barshak <vbarshak@mvista.com>
Signed-off-by: George G. Davis <gdavis@mvista.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/cache-v6.S