[STABLE PATCH] ARM: 7409/1: Do not call flush_cache_user_range with mmap_sem held

Ben Hutchings ben at decadent.org.uk
Sat May 26 16:19:09 EDT 2012


On Fri, 2012-05-25 at 15:38 +0100, Will Deacon wrote:
> From: Dima Zavin <dima at android.com>
> 
> commit 435a7ef52db7d86e67a009b36cac1457f8972391 upstream
> 
> 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)]
> 
> Cc: <stable at vger.kernel.org> # 2.6.32+: 4542b6a0: ARM: 7365/1
> Cc: <stable at vger.kernel.org> # 2.6.32+
> Acked-by: Catalin Marinas <catalin.marinas at arm.com>
> Signed-off-by: Dima Zavin <dima at android.com>
> Signed-off-by: John Stultz <john.stultz at linaro.org>
> Signed-off-by: Will Deacon <will.deacon at arm.com>
> Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
> ---
> 
> Greg: This patch is a candidate for -stable, but its dependency (listed
>       above) wasn't marked as such, hence this retrospective submission.
[...]

Both queued up for 3.2.y, thanks.

Ben.

-- 
Ben Hutchings
You can't have everything.  Where would you put it?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 828 bytes
Desc: This is a digitally signed message part
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120526/98eb634a/attachment.sig>


More information about the linux-arm-kernel mailing list