linux/arch/arm/mm
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
..
abort-ev4.S
abort-ev4t.S
abort-ev5t.S
abort-ev5tj.S
abort-ev6.S
abort-ev7.S
abort-lv4t.S
abort-macro.S
abort-nommu.S
alignment.c Merge branch 'omap3-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 into devel 2008-12-15 22:13:26 +00:00
cache-feroceon-l2.c
cache-l2x0.c
cache-v3.S [ARM] Remove unnecessary mach/hardware.h includes in arch/arm/mm 2008-11-28 23:20:39 +00:00
cache-v4.S [ARM] Remove unnecessary mach/hardware.h includes in arch/arm/mm 2008-11-28 23:20:39 +00:00
cache-v4wb.S
cache-v4wt.S [ARM] Remove unnecessary mach/hardware.h includes in arch/arm/mm 2008-11-28 23:20:39 +00:00
cache-v6.S
cache-v7.S
cache-xsc3l2.c
context.c
copypage-feroceon.c [ARM] fix a couple clear_user_highpage assembly constraints 2008-11-28 15:36:43 +00:00
copypage-v3.c [ARM] fix a couple clear_user_highpage assembly constraints 2008-11-28 15:36:43 +00:00
copypage-v4mc.c [ARM] fix StrongARM-11x0 page copy implementation 2009-01-24 11:41:17 +00:00
copypage-v4wb.c [ARM] fix a couple clear_user_highpage assembly constraints 2008-11-28 15:36:43 +00:00
copypage-v4wt.c [ARM] fix a couple clear_user_highpage assembly constraints 2008-11-28 15:36:43 +00:00
copypage-v6.c [ARM] clearpage: provide our own clear_user_highpage() 2008-11-27 23:53:48 +00:00
copypage-xsc3.c [ARM] fix a couple clear_user_highpage assembly constraints 2008-11-28 15:36:43 +00:00
copypage-xscale.c [ARM] fix a couple clear_user_highpage assembly constraints 2008-11-28 15:36:43 +00:00
discontig.c
dma-mapping.c NOMMU: Rename ARM's struct vm_region 2009-01-08 12:04:47 +00:00
extable.c
fault-armv.c [ARM] 5366/1: fix shared memory coherency with VIVT L1 + L2 caches 2009-01-28 16:55:00 +00:00
fault.c Merge branch 'mxc-pu-imxfb' of git://pasiphae.extern.pengutronix.de/git/imx/linux-2.6 into devel 2008-12-17 20:04:45 +00:00
fault.h
flush.c
init.c [ARM] use asm/sections.h 2008-12-01 11:53:07 +00:00
iomap.c
ioremap.c [ARM] fix section-based ioremap 2009-01-25 17:36:34 +00:00
Kconfig Merge branch 'for-rmk-realview' of git://linux-arm.org/linux-2.6 into devel 2008-12-01 17:53:45 +00:00
Makefile
mm.h [ARM] use asm/sections.h 2008-12-01 11:53:07 +00:00
mmap.c
mmu.c [ARM] eliminate NULL test and memset after alloc_bootmem 2008-12-14 12:05:03 +00:00
nommu.c [ARM] use asm/sections.h 2008-12-01 11:53:07 +00:00
pgd.c
proc-arm6_7.S
proc-arm7tdmi.S
proc-arm9tdmi.S
proc-arm720.S
proc-arm740.S
proc-arm920.S
proc-arm922.S
proc-arm925.S
proc-arm926.S
proc-arm940.S
proc-arm946.S
proc-arm1020.S
proc-arm1020e.S
proc-arm1022.S
proc-arm1026.S
proc-feroceon.S
proc-macros.S
proc-sa110.S
proc-sa1100.S
proc-syms.c [ARM] 5364/1: allow flush_ioremap_region() to be used from modules 2009-01-12 13:51:03 +00:00
proc-v6.S
proc-v7.S Merge branch 'for-rmk' of git://linux-arm.org/linux-2.6 into devel 2008-11-27 12:42:48 +00:00
proc-xsc3.S [ARM] pxa: add base PXA935 support due to CPUID change 2008-12-02 14:42:40 +08:00
proc-xscale.S
tlb-v3.S
tlb-v4.S
tlb-v4wb.S
tlb-v4wbi.S
tlb-v6.S
tlb-v7.S