https://github.com/torvalds/linux
Revision 85b093bcc5322baa811a03ec73de0909c157f181 authored by Valentine Barshak on 13 December 2010, 23:03:16 UTC, committed by Russell King on 14 December 2010, 22:23:34 UTC
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>
1 parent 593c252
History
Tip revision: 85b093bcc5322baa811a03ec73de0909c157f181 authored by Valentine Barshak on 13 December 2010, 23:03:16 UTC
ARM: 6535/1: V6 MPCore v6_dma_inv_range and v6_dma_flush_range RWFO fix
Tip revision: 85b093b
File Mode Size
Makefile -rw-r--r-- 394 bytes
compat.c -rw-r--r-- 17.0 KB
compat_mq.c -rw-r--r-- 4.1 KB
ipc_sysctl.c -rw-r--r-- 5.1 KB
ipcns_notifier.c -rw-r--r-- 2.2 KB
mq_sysctl.c -rw-r--r-- 2.7 KB
mqueue.c -rw-r--r-- 30.3 KB
msg.c -rw-r--r-- 20.8 KB
msgutil.c -rw-r--r-- 2.8 KB
namespace.c -rw-r--r-- 3.3 KB
sem.c -rw-r--r-- 40.3 KB
shm.c -rw-r--r-- 26.5 KB
syscall.c -rw-r--r-- 2.3 KB
util.c -rw-r--r-- 22.9 KB
util.h -rw-r--r-- 5.2 KB

back to top