linux/arch/arm
Dima Zavin 435a7ef52d ARM: 7409/1: Do not call flush_cache_user_range with mmap_sem held
We can't be holding the mmap_sem while calling flush_cache_user_range
because the flush can fault. If we fault on a user address, the
page fault handler will try to take mmap_sem again. Since both places
acquire the read lock, most of the time it succeeds. However, if another
thread tries to acquire the write lock on the mmap_sem (e.g. mmap) in
between the call to flush_cache_user_range and the fault, the down_read
in do_page_fault will deadlock.

[will: removed drop of vma parameter as already queued by rmk (7365/1)]

Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Dima Zavin <dima@android.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-05-02 11:12:27 +01:00
..
boot Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm 2012-04-15 17:35:19 -07:00
common ARM: 7395/1: VIC: use the domain mapping function to assign handlers 2012-04-25 12:57:07 +01:00
configs Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
include/asm ARM: 7404/1: cmpxchg64: use atomic64 and local64 routines for cmpxchg64 2012-04-28 17:32:44 +01:00
kernel ARM: 7409/1: Do not call flush_cache_user_range with mmap_sem held 2012-05-02 11:12:27 +01:00
lib ARM: 7301/1: Rename the T() macro to TUSER() to avoid namespace conflicts 2012-01-25 11:07:40 +00:00
mach-at91 ARM: fix __io macro for PCMCIA 2012-04-05 11:29:55 -07:00
mach-bcmring ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-clps711x ARM: A few more platform fixes for include file fallout 2012-03-30 17:00:34 -07:00
mach-cns3xxx ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-davinci Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2012-03-30 16:45:39 -07:00
mach-dove ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-ebsa110 ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-ep93xx ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-exynos ARM: EXYNOS: Fix Kconfig dependencies for device tree enabled machine files 2012-04-14 07:53:51 -07:00
mach-footbridge ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-gemini ARM: remove bunch of now unused mach/io.h files 2012-03-06 21:34:44 -06:00
mach-h720x ARM: A few more platform fixes for include file fallout 2012-03-30 17:00:34 -07:00
mach-highbank ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-imx ARM: armadillo5x0: Fix smsc911x driver probe 2012-04-02 16:31:22 +02:00
mach-integrator ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-iop13xx ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-iop32x ARM: kill off __mem_pci 2012-03-06 21:34:45 -06:00
mach-iop33x ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-ixp4xx ARM: A few more platform fixes for include file fallout 2012-03-30 17:00:34 -07:00
mach-ixp23xx ARM: A few more platform fixes for include file fallout 2012-03-30 17:00:34 -07:00
mach-ixp2000 ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-kirkwood Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2012-03-30 16:45:39 -07:00
mach-ks8695 ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-l7200/include/mach
mach-lpc32xx ARM: arm-soc fixes for 3.4-rc 2012-03-29 21:30:28 -07:00
mach-mmp ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-msm ARM: msm: Fix section mismatches in proc_comm.c 2012-04-13 10:23:17 -07:00
mach-mv78xx0 ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-mxs MTD merge for 3.4 2012-03-30 17:31:56 -07:00
mach-netx ARM: __io abuse cleanup 2012-03-13 21:25:21 -05:00
mach-nomadik ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-omap1 ARM: fix __io macro for PCMCIA 2012-04-05 11:29:55 -07:00
mach-omap2 ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors 2012-04-14 17:49:07 -07:00
mach-orion5x ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-picoxcell ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-pnx4008 ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-prima2 ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-pxa ARM: fix __io macro for PCMCIA 2012-04-05 11:29:55 -07:00
mach-realview ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-rpc ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-s3c24xx ARM: S3C24XX: fix missing common.h in mach-s3c24xx/ 2012-04-02 06:43:23 +09:00
mach-s3c64xx ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-s3c2410 Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
mach-s3c2412 Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
mach-s3c2440 Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
mach-s5p64x0 ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-s5pc100 ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-s5pv210 ARM: S5PV210: Fix compiler warning in dma.c file 2012-04-10 08:40:19 -07:00
mach-sa1100 ARM: fix lcd power build failure in collie_defconfig 2012-04-02 22:03:44 -07:00
mach-shark ARM: A few more platform fixes for include file fallout 2012-03-30 17:00:34 -07:00
mach-shmobile MTD merge for 3.4 2012-03-30 17:31:56 -07:00
mach-spear3xx ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-spear6xx ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-tegra ARM: arm-soc fixes for 3.4-rc 2012-03-29 21:30:28 -07:00
mach-u300 MTD merge for 3.4 2012-03-30 17:31:56 -07:00
mach-ux500 ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-versatile ARM: versatile: fix build failure in pci.c 2012-04-02 22:03:35 -07:00
mach-vexpress ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
mach-vt8500 ARM: remove bunch of now unused mach/io.h files 2012-03-06 21:34:44 -06:00
mach-w90x900 ARM: A few more platform fixes for include file fallout 2012-03-30 17:00:34 -07:00
mach-zynq ARM: remove bunch of now unused mach/io.h files 2012-03-06 21:34:44 -06:00
mm ARM: 7384/1: ThumbEE: Disable userspace TEEHBR access for !CONFIG_ARM_THUMBEE 2012-04-15 22:00:31 +01:00
net ARM: 7259/3: net: JIT compiler for packet filters 2012-03-24 09:38:56 +00:00
nwfpe Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
oprofile
plat-iop Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
plat-mxc ARM: 3ds_debugboard: Fix smsc911x driver probe 2012-04-02 11:15:15 +02:00
plat-nomadik Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
plat-omap ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors 2012-04-14 17:49:07 -07:00
plat-orion ARM: orion: wdt: use resource vice direct access 2012-03-16 04:28:41 +00:00
plat-pxa Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
plat-s3c24xx ARM: fix builds due to missing <asm/system_misc.h> includes 2012-03-30 15:44:40 -07:00
plat-s5p Merge branch 'samsung/cleanup-exynos-clock' into next/soc 2012-03-20 10:07:48 +00:00
plat-samsung ARM: SAMSUNG: make SAMSUNG_PM_DEBUG select DEBUG_LL 2012-04-14 07:42:24 -07:00
plat-spear Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2012-03-29 23:17:44 -07:00
plat-versatile Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
tools
vfp Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
Kconfig ARM: 7374/1: add TRACEHOOK support 2012-04-25 19:49:28 +01:00
Kconfig-nommu
Kconfig.debug Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
Makefile Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00