linux-uconsole/arch
Dima Zavin 7bc14acfbb [ARM] 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.

Also, since we really can't be holding the mmap_sem while calling
flush_cache_user_range AND vma is actually unused by the flush itself,
get rid of vma as an argument.

Change-Id: If55409bde41ad1060fa4fe7cbd4ac530d4d9a106
Signed-off-by: Dima Zavin <dima@android.com>
2010-05-04 18:02:20 -07:00
..
alpha untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
arm [ARM] Do not call flush_cache_user_range with mmap_sem held 2010-05-04 18:02:20 -07:00
avr32 untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
blackfin FDPIC: Respect PT_GNU_STACK exec protection markings when creating NOMMU stack 2010-02-09 04:50:49 -08:00
cris untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
frv FDPIC: Respect PT_GNU_STACK exec protection markings when creating NOMMU stack 2010-02-09 04:50:49 -08:00
h8300 untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
ia64 untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
m32r untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
m68k untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
m68knommu untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
microblaze untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
mips untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
mn10300 untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
parisc untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
powerpc powerpc: TIF_ABI_PENDING bit removal 2010-02-09 04:51:02 -08:00
s390 S390: fix single stepped svcs with TRACE_IRQFLAGS=y 2010-02-09 04:50:43 -08:00
score untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
sh sh: Couple kernel and user write page perm bits for CONFIG_X2TLB 2010-02-23 07:37:55 -08:00
sparc sparc: TIF_ABI_PENDING bit removal 2010-02-09 04:50:50 -08:00
um untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
x86 x86: Re-get cfg_new in case reuse/move irq_desc 2010-02-23 07:37:56 -08:00
xtensa untangle the do_mremap() mess 2010-01-18 10:19:11 -08:00
.gitignore
Kconfig oprofile: fix oprofile regression: select RING_BUFFER_ALLOW_SWAP 2009-09-17 15:53:42 -04:00