Dima Zavin
16483f51c7
[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-09-29 17:49:33 -07:00
..
2010-09-29 17:49:04 -07:00
2010-09-22 17:22:38 -07:00
2010-08-16 09:22:04 +03:00
2010-09-29 17:49:33 -07:00
2010-09-29 17:49:33 -07:00
2010-08-03 14:31:24 -07:00
2010-07-16 10:57:35 +01:00
2010-09-23 15:08:48 +01:00
2010-07-22 09:55:38 +01:00
2010-08-05 10:35:49 +01:00
2010-06-08 17:37:09 +04:00
2010-09-25 15:58:40 +01:00
2010-09-19 22:43:42 -04:00
2010-02-12 17:27:52 +00:00
2010-09-08 12:28:39 +01:00
2010-07-22 09:20:50 +01:00
2010-05-13 12:19:14 +01:00
2010-08-05 10:35:49 +01:00
2010-08-23 20:50:17 -07:00
2010-08-05 10:35:49 +01:00
2010-07-31 14:20:02 +01:00
2010-05-17 17:24:04 +01:00
2010-03-30 22:02:32 +09:00
2010-09-22 17:22:38 -07:00
2010-08-05 10:35:49 +01:00
2010-07-27 10:48:34 +01:00
2010-09-19 22:43:25 -04:00
2010-07-27 10:48:34 +01:00
2010-07-16 10:57:35 +01:00
2010-02-25 22:09:41 +00:00
2010-07-27 08:46:22 -07:00
2010-09-25 09:47:03 +08:00
2010-08-12 10:07:32 -07:00
2010-03-08 20:21:04 +00:00
2010-09-01 10:08:50 +01:00
2010-08-21 12:22:43 +02:00
2010-09-01 10:08:50 +01:00
2010-06-30 09:00:27 +02:00
2010-03-30 22:02:32 +09:00
2010-07-22 09:55:38 +01:00
2010-07-26 10:33:07 +01:00
2010-01-27 22:03:00 +00:00
2010-08-04 16:10:38 +03:00
2010-08-16 09:22:05 +03:00
2010-08-12 02:21:18 +01:00
2010-03-30 22:02:32 +09:00
2010-09-27 12:32:36 -07:00
2010-08-03 14:31:24 -07:00
2010-03-30 22:02:32 +09:00
2010-03-08 20:21:04 +00:00
2010-09-18 09:54:55 +09:00
2009-12-09 19:43:33 -08:00
2010-08-27 15:28:38 +09:00
2010-07-16 10:57:35 +01:00
2010-08-11 08:59:10 -07:00
2010-08-11 08:59:22 -07:00
2010-08-11 08:59:10 -07:00
2010-08-27 15:28:38 +09:00
2010-08-27 15:28:38 +09:00
2010-08-11 09:13:19 -07:00
2010-09-14 17:59:16 +09:00
2010-08-27 18:29:58 +09:00
2010-08-06 18:10:25 +01:00
2010-07-31 14:19:35 +01:00
2010-08-20 20:41:23 +09:00
2010-07-22 09:55:38 +01:00
2010-07-22 09:55:38 +01:00
2009-06-04 14:16:45 +01:00
2009-06-04 14:16:45 +01:00
2010-08-22 12:54:23 -07:00
2010-09-17 10:16:49 +01:00
2010-08-09 21:00:07 -07:00
2010-08-05 10:35:49 +01:00
2010-09-27 14:57:36 +01:00
2010-08-11 00:34:38 +01:00
2010-09-29 17:49:04 -07:00
2010-05-24 20:40:12 +01:00
2010-05-17 11:53:59 +01:00
2010-07-31 14:20:02 +01:00
2010-08-21 12:22:43 +02:00
2010-09-17 10:16:48 +01:00
2010-09-25 15:58:40 +01:00
2010-08-07 17:07:31 -07:00
2010-08-30 09:59:44 +08:00
2010-06-16 18:08:13 +02:00
2010-09-14 17:57:55 +09:00
2010-09-14 17:59:31 +09:00
2010-08-04 15:14:38 +02:00
2010-03-30 22:02:32 +09:00
2010-07-26 10:48:34 +01:00
2010-09-09 22:49:26 +01:00
2010-07-09 14:41:34 +01:00
2010-09-19 12:16:27 +01:00
2007-10-12 23:43:02 +01:00
2010-02-24 01:52:06 +00:00
2010-08-14 23:58:43 +01:00