linux/arch
Nicolas Pitre 08e445bd6a [ARM] 5366/1: fix shared memory coherency with VIVT L1 + L2 caches
When there are multiple L1-aliasing userland mappings of the same physical
page, we currently remap each of them uncached, to prevent VIVT cache
aliasing issues. (E.g. writes to one of the mappings not being immediately
visible via another mapping.)  However, when we do this remapping, there
could still be stale data in the L2 cache, and an uncached mapping might
bypass L2 and go straight to RAM.  This would cause reads from such
mappings to see old data (until the dirty L2 line is eventually evicted.)

This issue is solved by forcing a L2 cache flush whenever the shared page
is made L1 uncacheable.

Ideally, we would make L1 uncacheable and L2 cacheable as L2 is PIPT. But
Feroceon does not support that combination, and the TEX=5 C=0 B=0 encoding
for XSc3 doesn't appear to work in practice.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-01-28 16:55:00 +00:00
..
alpha alpha: make pte_alloc_one_kernel() inline 2009-01-15 16:39:40 -08:00
arm [ARM] 5366/1: fix shared memory coherency with VIVT L1 + L2 caches 2009-01-28 16:55:00 +00:00
avr32 eeprom: More consistent symbol names 2009-01-26 21:19:57 +01:00
blackfin eeprom: More consistent symbol names 2009-01-26 21:19:57 +01:00
cris Merge branch 'syscalls' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2009-01-14 19:58:40 -08:00
frv NOMMU: Make VMAs per MM as for MMU-mode linux 2009-01-08 12:04:47 +00:00
h8300 Merge branch 'syscalls' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2009-01-14 19:58:40 -08:00
ia64 eeprom: More consistent symbol names 2009-01-26 21:19:57 +01:00
m32r eeprom: More consistent symbol names 2009-01-26 21:19:57 +01:00
m68k m68k{nommu}: fixups after the header move 2009-01-26 10:38:43 -08:00
m68knommu Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu 2009-01-26 10:33:01 -08:00
mips eeprom: More consistent symbol names 2009-01-26 21:19:57 +01:00
mn10300 [CVE-2009-0029] Rename old_readdir to sys_old_readdir 2009-01-14 14:15:15 +01:00
parisc byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
powerpc eeprom: More consistent symbol names 2009-01-26 21:19:57 +01:00
s390 [S390] Add missing compat system call wrappers. 2009-01-23 16:40:29 +01:00
sh Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6 2009-01-26 15:11:41 -08:00
sparc Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6 2009-01-26 15:11:41 -08:00
um mm: invoke oom-killer from page fault 2009-01-06 15:58:58 -08:00
x86 Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6 2009-01-26 15:11:41 -08:00
xtensa byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
.gitignore
Kconfig [CVE-2009-0029] System call wrapper infrastructure 2009-01-14 14:15:16 +01:00