linux/arch/arm
Russell King 6060e8df51 ARM: I-cache: flush executable mappings in flush_cache_range()
Dirk Behme reported instability on ARM11 SMP (VIPT non-aliasing cache)
caused by the dynamic linker changing protection on text pages to write
GOT entries.  The problem is due to an interaction between the write
faulting code providing new anonymous pages which are incoherent with
the I-cache due to write buffering, and the I-cache not having been
invalidated.

a4db94d plugs the hole with the data cache coherency.  This patch
provides the other half of the fix by flushing the I-cache in
flush_cache_range() for VM_EXEC VMAs (which is what we have when the
region is being made executable again.)  This ensures that the I-cache
will be up to date with the newly COW'd pages.

Note: if users are writing instructions, then they still need to use
the ARM sys_cacheflush API to ensure that the caches are correctly
synchronized.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-12-04 14:58:51 +00:00
..
boot kbuild: use INSTALLKERNEL to select customized installkernel script 2009-09-20 12:18:14 +02:00
common ARM: 5735/1: sa1111: CodingStyle cleanups 2009-10-02 22:32:33 +01:00
configs Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2009-11-12 14:57:15 -08:00
include/asm ARM: Reduce __flush_dcache_page() visibility 2009-12-04 14:58:50 +00:00
kernel ARM: 5793/1: ARM: Check put_user fail in do_signal when enable OABI_COMPAT 2009-11-23 17:28:23 +00:00
lib Merge branch 'for-rmk' of git://linux-arm.org/linux-2.6 2009-09-19 13:47:57 +01:00
mach-aaec2000 [ARM] pass reboot command line to arch_reset() 2009-03-19 16:20:24 +00:00
mach-at91 at91: at91sam9g20ek modify dual slot evaluation kit 2009-11-16 16:57:50 +01:00
mach-bcmring ARM: 5748/1: bcmring: fix build warning messages 2009-10-07 13:13:01 +01:00
mach-clps711x [ARM] pass reboot command line to arch_reset() 2009-03-19 16:20:24 +00:00
mach-davinci ARM: includecheck fix: mach-davinci, board-dm365-evm.c 2009-09-28 18:06:20 +01:00
mach-ebsa110 [ARM] pass reboot command line to arch_reset() 2009-03-19 16:20:24 +00:00
mach-ep93xx ARM: 5779/1: ep93xx/micro9.c: fix implicit declaration of function __raw_readl and IOMEM 2009-11-05 20:20:56 +00:00
mach-footbridge [ARM] pass reboot command line to arch_reset() 2009-03-19 16:20:24 +00:00
mach-gemini Gemini: Fix SRAM/ROM location after memory swap 2009-05-28 16:42:25 +03:00
mach-h720x [ARM] pass reboot command line to arch_reset() 2009-03-19 16:20:24 +00:00
mach-integrator ARM: integrator: allow Integrator to be built with highmem 2009-10-25 22:44:30 +00:00
mach-iop13xx Merge branch 'iop-raid6' into async-tx-next 2009-09-08 17:53:57 -07:00
mach-iop32x iop3xx: ATU and PCI memory configuration corrected 2009-08-18 13:48:35 -07:00
mach-iop33x iop3xx: ATU and PCI memory configuration corrected 2009-08-18 13:48:35 -07:00
mach-ixp4xx ixp4xx: arch_idle() documentation fixup 2009-09-21 19:20:03 +02:00
mach-ixp23xx [ARM] pass reboot command line to arch_reset() 2009-03-19 16:20:24 +00:00
mach-ixp2000 [ARM] pass reboot command line to arch_reset() 2009-03-19 16:20:24 +00:00
mach-kirkwood [ARM] Kirkwood: disable propagation of mbus error to the CPU local bus 2009-11-13 12:14:23 -05:00
mach-ks8695 ARM: 5780/1: KS8695: Fix macro definition bug in regs-switch.c 2009-11-05 20:21:25 +00:00
mach-l7200 [ARM] mach-l7200: fix spelling of SYS_CLOCK_OFF 2009-05-18 11:25:08 +01:00
mach-lh7a40x [ARM] pass reboot command line to arch_reset() 2009-03-19 16:20:24 +00:00
mach-loki [ARM] add coherent DMA mask for mv643xx_eth 2009-05-22 17:05:53 -04:00
mach-mmp [ARM] pxa: fix missing underscores in mfp-pxa910.h 2009-11-13 16:25:47 +08:00
mach-msm clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
mach-mv78xx0 [ARM] properly report mv78100 stepping A1 2009-11-05 23:03:19 -05:00
mach-mx1 ARM: mxc: Fix i2c_board_info definitions 2009-08-14 12:40:37 +02:00
mach-mx2 MXC: fix reset for mx31, mx35 and mx27 SoCs 2009-10-13 10:24:10 +02:00
mach-mx3 MXC: fix reset for mx31, mx35 and mx27 SoCs 2009-10-13 10:24:10 +02:00
mach-mx25 mx25: Add missing copyright / license header 2009-10-02 09:14:18 +02:00
mach-mxc91231 MXC: add iomux pins configuration support for MXC91231 2009-08-14 12:40:47 +02:00
mach-netx netx: Use get_irqnr_preamble to initialize base register 2009-08-13 20:34:36 +02:00
mach-nomadik mtd: OneNand support for Nomadik 8815 SoC (on NHK8815 board) 2009-09-20 06:00:27 -07:00
mach-ns9xxx const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
mach-omap1 omap1: Fix DSP public peripherals support for ams-delta 2009-10-22 14:47:42 -07:00
mach-omap2 OMAP: cs should be positive in gpmc_cs_free() 2009-11-18 10:34:33 -08:00
mach-orion5x [ARM] orion5x: Add LaCie NAS 2Big Network support 2009-09-08 14:10:35 -04:00
mach-pnx4008 [ARM] pass reboot command line to arch_reset() 2009-03-19 16:20:24 +00:00
mach-pxa [ARM] pxa/spitz: fix compile regression on spitz 2009-11-22 09:32:43 -06:00
mach-realview RealView: Add sparsemem support for the RealView PBX platform 2009-11-05 10:10:36 +00:00
mach-rpc [ARM] pass reboot command line to arch_reset() 2009-03-19 16:20:24 +00:00
mach-s3c24a0/include/mach ARM: S3C: move s3c_device_nand from plat-s3c24xx to plat-s3c 2009-07-31 00:10:24 +01:00
mach-s3c2400 [ARM] S3C24XX: GPIO: Fix error returns from gpio functions 2009-05-18 19:40:18 +01:00
mach-s3c2410 ARM: S3C2410: Fix sparse warnings in arch/arm/mach-s3c2410/gpio.c 2009-10-28 18:34:56 +00:00
mach-s3c2412 ARM: S3C: Add missing selection of S3C_DEV_NAND in machine Kconfigs. 2009-09-17 10:12:28 +01:00
mach-s3c2440 ARM: S3C2440: mini2440: Fix spare warnings 2009-10-28 18:34:51 +00:00
mach-s3c2442 [ARM] GTA02: build fixes (s3c2410_nand_set usage) 2009-06-24 00:10:46 +01:00
mach-s3c2443 [ARM] S3C24XX: DMA: Split hardware regs out of <mach/dma.h> 2009-05-01 11:39:06 +01:00
mach-s3c6400 ARM: S3C64XX: Tidy definition and comments in s3c_dma_has_circular() 2009-11-09 23:45:47 +00:00
mach-s3c6410 ARM: SMDK6410: Allocate more GPIO space for WM1190-EV1 2009-11-09 23:40:21 +00:00
mach-s5pc100 ARM: S5PC100: Board and configuration file 2009-08-16 23:40:39 +01:00
mach-sa1100 ARM: 5752/1: SA1100: fix building of h3100 2009-10-07 13:13:01 +01:00
mach-shark [ARM] pass reboot command line to arch_reset() 2009-03-19 16:20:24 +00:00
mach-stmp37xx [ARM] 5539/1: Freescale STMP: onboard devices declaration 2009-06-04 14:16:45 +01:00
mach-stmp378x [ARM] 5539/1: Freescale STMP: onboard devices declaration 2009-06-04 14:16:45 +01:00
mach-u300 ARM: 5787/1: U300 COH 901 331 fixes 2009-11-16 16:15:49 +00:00
mach-versatile ARM: 5720/1: Move MMCI header to amba include dir 2009-09-22 20:49:04 +01:00
mach-w90x900 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-09-14 17:56:51 -07:00
mm ARM: I-cache: flush executable mappings in flush_cache_range() 2009-12-04 14:58:51 +00:00
nwfpe [ARM] nwfpe: fix 'floatx80_is_nan' sparse warning 2009-05-15 12:49:14 +01:00
oprofile ARM: 5764/1: bcmring: add oprofile pmu support 2009-10-17 20:10:22 +01:00
plat-iop Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/xscaleiop 2009-10-02 22:31:04 +01:00
plat-mxc spi: add SPI driver for most known i.MX SoCs 2009-09-23 07:39:43 -07:00
plat-omap omap: fix unlikely(x) < y 2009-11-18 10:33:41 -08:00
plat-orion [ARM] Kirkwood: __init requires linux/init.h 2009-08-24 11:55:59 -04:00
plat-pxa [ARM] pxa: ensure mfp is in correct range in mfp_{read,write} 2009-11-17 00:50:10 +08:00
plat-s3c ARM: s3c: fix check of index into s3c_gpios[] 2009-09-19 12:14:06 +01:00
plat-s3c24xx ARM: S3C24XX: Fix warnings in arch/arm/plat-s3c24xx/gpio.c 2009-10-28 18:34:45 +00:00
plat-s3c64xx ARM: S3C64XX: DMA: Free node for non-circular queues 2009-11-09 23:51:19 +00:00
plat-s5pc1xx ARM: S5PC100: Kconfigs and Makefiles 2009-08-16 23:35:19 +01:00
plat-stmp3xxx ARM: STMP3xxx: deallocation with negative index of descriptors[] 2009-09-19 12:14:05 +01:00
tools [ARM] Update mach-types 2009-11-25 22:17:36 +00:00
vfp Thumb-2: Implement the unified VFP support 2009-07-24 12:32:57 +01:00
Kconfig ARM: 5580/2: ARM TCM (Tightly-Coupled Memory) support v3 2009-09-15 22:11:05 +01:00
Kconfig-nommu
Kconfig.debug Thumb-2: Add Thumb-2 support to the build files 2009-07-24 12:33:02 +01:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next 2009-09-23 15:37:02 -07:00