Naoya Horiguchi
48684a65b4
mm: pagewalk: fix misbehavior of walk_page_range for vma(VM_PFNMAP)
...
walk_page_range() silently skips vma having VM_PFNMAP set, which leads to
undesirable behaviour at client end (who called walk_page_range). For
example for pagemap_read(), when no callbacks are called against VM_PFNMAP
vma, pagemap_read() may prepare pagemap data for next virtual address
range at wrong index. That could confuse and/or break userspace
applications.
This patch avoid this misbehavior caused by vma(VM_PFNMAP) like follows:
- for pagemap_read() which has its own ->pte_hole(), call the ->pte_hole()
over vma(VM_PFNMAP),
- for clear_refs and queue_pages which have their own ->tests_walk,
just return 1 and skip vma(VM_PFNMAP). This is no problem because
these are not interested in hole regions,
- for other callers, just skip the vma(VM_PFNMAP) as a default behavior.
Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Signed-off-by: Shiraz Hashim <shashim@codeaurora.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-02-11 17:06:06 -08:00
..
2015-02-10 14:30:30 -08:00
2014-08-08 15:57:24 -07:00
2014-12-13 12:42:52 -08:00
2015-02-04 01:34:14 -05:00
2014-11-19 13:01:20 -05:00
2014-12-13 12:42:51 -08:00
2014-08-08 15:57:24 -07:00
2015-02-11 17:06:04 -08:00
2014-11-19 13:01:20 -05:00
2015-02-10 16:45:56 -08:00
2015-02-10 16:45:56 -08:00
2014-12-11 16:28:12 -05:00
2014-11-19 13:01:20 -05:00
2014-08-08 15:57:25 -07:00
2014-12-14 16:10:09 -08:00
2014-06-06 16:08:14 -07:00
2015-01-18 01:03:45 -05:00
2014-12-19 18:15:12 -08:00
2015-01-29 19:16:40 +01:00
2014-08-08 15:57:18 -07:00
2014-10-19 20:22:32 +03:00
2014-11-03 15:20:29 -05:00
2014-11-10 10:06:10 +01:00
2015-01-05 11:13:55 +01:00
2015-02-10 16:45:56 -08:00
2015-02-10 14:30:30 -08:00
2014-12-13 12:42:51 -08:00
2014-04-04 15:39:39 -07:00
2014-10-13 17:52:21 +01:00
2015-02-10 14:30:30 -08:00
2015-02-10 16:45:56 -08:00
2014-12-10 17:41:16 -08:00
2014-12-18 19:08:10 -08:00
2014-08-07 14:40:09 -04:00
2014-08-08 15:57:22 -07:00
2014-10-31 17:48:54 -04:00
2014-12-13 12:42:45 -08:00
2015-01-07 09:51:49 +01:00
2014-11-18 10:15:29 +01:00
2014-12-12 09:28:03 -08:00
2014-11-28 18:23:44 -08:00
2014-12-10 16:10:49 -08:00
2015-01-09 15:51:08 -08:00
2015-02-10 15:34:42 -08:00
2014-08-06 18:01:12 -07:00
2014-08-08 15:57:20 -07:00
2014-12-10 18:34:42 -08:00
2015-02-10 16:45:56 -08:00
2014-09-17 16:33:11 -04:00
2015-01-16 16:08:50 -05:00
2015-02-10 14:30:30 -08:00
2014-01-25 03:14:05 -05:00
2015-02-10 14:30:28 -08:00
2014-11-19 13:01:20 -05:00
2015-02-10 16:45:56 -08:00
2014-10-14 02:18:22 +02:00
2014-03-13 10:14:33 -04:00
2014-12-08 20:39:29 -05:00
2015-02-11 17:06:06 -08:00
2014-12-14 16:10:09 -08:00
2014-03-13 10:14:33 -04:00
2014-08-08 15:57:26 -07:00
2015-02-10 15:52:38 -08:00
2014-08-08 15:57:18 -07:00
2014-12-16 15:46:01 -08:00
2014-08-08 15:57:25 -07:00
2014-11-27 18:48:44 +00:00
2014-11-07 10:54:38 -08:00
2014-05-06 17:38:00 -04:00
2015-02-10 14:30:30 -08:00
2015-02-05 16:34:25 +01:00
2014-10-14 02:18:20 +02:00
2015-02-10 16:45:56 -08:00
2015-02-03 19:29:05 -05:00
2014-03-27 09:52:54 -07:00
2014-06-10 13:57:22 -07:00
2014-08-07 14:40:09 -04:00
2014-11-19 13:01:20 -05:00
2014-10-09 02:39:00 -04:00
2014-12-11 17:56:37 -08:00
2014-12-13 12:42:51 -08:00
2014-06-04 16:54:21 -07:00
2014-12-17 08:27:14 -05:00
2014-12-13 12:42:51 -08:00
2014-11-17 10:35:17 +00:00
2014-10-21 13:55:11 -06:00
2014-12-10 17:41:04 -08:00
2014-03-04 08:05:21 +00:00
2014-07-11 13:53:04 +03:00
2014-10-31 17:48:54 -04:00
2014-10-14 02:18:21 +02:00
2014-12-08 20:39:29 -05:00
2014-01-29 16:22:40 -08:00
2014-09-26 21:16:51 -04:00
2014-12-13 12:42:48 -08:00
2014-11-05 14:13:23 -05:00
2014-11-05 14:13:23 -05:00
2014-12-13 12:42:51 -08:00
2015-01-08 15:10:52 -08:00
2014-10-13 11:28:42 +02:00
2014-12-10 17:41:10 -08:00
2014-04-03 16:21:05 -07:00
2014-08-07 14:40:09 -04:00
2013-11-06 12:40:26 +01:00
2014-11-04 10:42:23 -07:00
2015-02-10 16:45:56 -08:00
2014-12-10 21:30:20 -05:00
2015-02-10 14:30:30 -08:00
2015-01-05 14:15:58 +00:00
2014-11-24 07:45:02 +01:00
2014-11-03 15:20:29 -05:00
2015-01-21 20:44:01 -05:00
2014-12-10 21:31:59 -05:00
2014-06-25 22:08:29 -04:00
2014-12-04 14:31:00 -05:00
2014-10-09 22:25:53 -04:00
2014-12-16 15:53:03 -08:00
2014-12-18 11:22:02 -08:00
2014-12-10 21:30:20 -05:00
2014-12-16 15:25:31 -08:00
2014-05-06 17:39:42 -04:00
2014-12-02 10:46:50 -06:00
2014-04-01 23:19:08 -04:00
2014-05-06 13:58:42 -04:00
2014-12-17 08:27:15 -05:00
2015-01-16 16:08:16 -05:00
2014-10-31 17:48:54 -04:00
2013-11-13 15:34:18 +09:00
2014-12-13 12:42:49 -08:00
2014-11-05 14:13:23 -05:00
2014-10-24 00:14:35 +02:00
2014-08-26 09:35:56 +02:00
2013-11-09 00:16:31 -05:00
2014-11-10 10:06:18 +01:00
2014-11-19 13:01:25 -05:00
2014-11-05 14:13:23 -05:00
2013-11-09 00:16:44 -05:00
2014-11-19 13:01:26 -05:00