Andrey Vagin
24f91eba18
mm: don't lose the SOFT_DIRTY flag on mprotect
...
The SOFT_DIRTY bit shows that the content of memory was changed after a
defined point in the past. mprotect() doesn't change the content of
memory, so it must not change the SOFT_DIRTY bit.
This bug causes a malfunction: on the first iteration all pages are
dumped. On other iterations only pages with the SOFT_DIRTY bit are
dumped. So if the SOFT_DIRTY bit is cleared from a page by mistake, the
page is not dumped and its content will be restored incorrectly.
This patch does nothing with _PAGE_SWP_SOFT_DIRTY, becase pte_modify()
is called only for present pages.
Fixes commit 0f8975ec4db2 ("mm: soft-dirty bits for user memory changes
tracking").
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Pavel Emelyanov <xemul@parallels.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Wen Congyang <wency@cn.fujitsu.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-01-30 16:56:56 -08:00
..
2013-09-24 06:02:24 +10:00
2012-12-07 14:24:32 -07:00
2013-11-19 16:57:40 +01:00
2013-11-11 19:53:42 +01:00
2014-01-06 10:44:20 -05:00
2013-09-25 16:59:39 +02:00
2012-09-21 12:45:26 -07:00
2013-07-23 10:12:57 +02:00
2013-01-10 16:17:58 +01:00
2013-08-20 09:26:33 +02:00
2013-10-13 03:12:12 -07:00
2013-08-29 13:26:32 -07:00
2013-12-04 14:31:28 -08:00
2013-12-04 14:31:28 -08:00
2014-01-12 10:37:17 +01:00
2013-12-04 14:31:28 -08:00
2012-12-14 22:37:13 +00:00
2013-08-09 15:29:48 -07:00
2013-04-30 17:04:02 -07:00
2013-09-25 14:23:07 +02:00
2013-09-01 14:09:48 -07:00
2013-08-06 14:20:59 -07:00
2012-10-02 18:01:25 +01:00
2012-11-27 23:29:09 -02:00
2012-11-29 13:23:01 -08:00
2013-04-25 10:39:04 +02:00
2012-10-06 03:05:16 +09:00
2013-03-07 17:09:25 +01:00
2013-07-14 19:36:56 -04:00
2013-12-06 10:21:44 -08:00
2012-12-14 22:37:13 +00:00
2013-11-08 14:15:47 -08:00
2012-11-15 00:28:00 +01:00
2013-08-27 09:18:29 +02:00
2012-10-24 17:06:43 +02:00
2014-01-23 16:36:57 -08:00
2013-08-13 23:29:19 -07:00
2014-01-03 14:38:18 +00:00
2012-12-11 17:22:25 -08:00
2013-07-09 10:33:29 -07:00
2013-06-20 22:25:34 -07:00
2014-01-23 16:36:54 -08:00
2014-01-11 19:15:52 -08:00
2013-02-12 17:46:28 -05:00
2013-12-16 09:08:13 -08:00
2013-04-16 16:32:39 -03:00
2013-12-17 14:27:17 -05:00
2013-01-28 10:48:30 +01:00
2013-04-29 15:54:33 -07:00
2012-12-14 22:37:13 +00:00
2014-01-12 13:13:02 +01:00
2013-08-05 06:35:33 -07:00
2012-09-21 16:59:04 -07:00
2013-02-03 18:16:27 -05:00
2013-01-29 15:12:25 -08:00
2013-05-30 16:36:23 -07:00
2013-10-17 16:40:36 -07:00
2014-01-15 14:38:58 -08:00
2013-01-28 12:51:52 +01:00
2013-05-31 13:02:52 +10:00
2012-09-05 10:52:26 +02:00
2012-06-25 13:48:30 +02:00
2014-01-08 14:36:29 -08:00
2013-04-19 20:34:55 +02:00
2013-04-16 16:32:39 -03:00
2014-01-15 22:24:02 -08:00
2012-12-14 22:37:13 +00:00
2013-10-11 07:39:14 +02:00
2013-09-25 14:07:57 +02:00
2013-11-12 21:06:06 +01:00
2013-01-29 15:26:23 -08:00
2013-08-06 14:19:48 -07:00
2013-10-30 18:54:40 +01:00
2012-11-27 23:29:10 -02:00
2014-01-17 10:22:10 +01:00
2013-09-04 11:55:10 -07:00
2013-04-22 15:45:03 +09:30
2013-01-24 11:25:59 +01:00
2013-12-04 14:31:28 -08:00
2013-05-28 14:00:59 -07:00
2014-01-06 21:25:18 -08:00
2014-01-13 19:59:38 +01:00
2013-07-14 19:36:56 -04:00
2014-01-13 19:57:27 +01:00
2013-09-28 10:10:26 +02:00
2013-07-14 19:36:56 -04:00
2013-08-01 09:10:26 +02:00
2013-01-31 14:12:30 -08:00
2012-10-02 18:01:25 +01:00
2012-11-29 13:23:01 -08:00
2014-01-06 21:25:18 -08:00
2013-06-20 22:25:34 -07:00
2013-10-17 00:36:06 +02:00
2013-05-31 13:02:52 +10:00
2013-06-26 12:10:55 +02:00
2013-10-11 07:39:14 +02:00
2012-10-02 18:01:25 +01:00
2014-01-13 17:38:55 +01:00
2013-06-20 14:00:21 +02:00
2013-07-14 19:36:56 -04:00
2012-07-31 23:27:30 -04:00
2013-08-07 21:00:04 -07:00
2013-11-19 14:24:50 +01:00
2013-10-13 03:13:13 -07:00
2012-11-16 16:42:09 -08:00
2014-01-27 21:02:38 -08:00
2013-11-19 14:24:50 +01:00
2013-09-04 11:55:10 -07:00
2013-08-09 07:54:00 -07:00
2013-01-03 15:57:04 -08:00
2013-02-25 21:18:18 -08:00
2014-01-10 14:23:15 -07:00
2013-11-13 15:17:16 +09:00
2013-04-26 09:31:41 +02:00
2013-06-19 14:43:33 +02:00
2013-11-15 09:32:15 +09:00
2013-01-24 16:12:13 +01:00
2013-10-13 03:13:13 -07:00
2013-02-21 18:06:55 -08:00
2014-01-30 16:56:56 -08:00
2013-11-19 14:24:34 +01:00
2013-08-13 17:57:48 -07:00
2013-12-18 19:04:51 -08:00
2012-12-14 22:37:13 +00:00
2013-12-11 15:52:32 +01:00
2012-12-14 22:37:13 +00:00
2014-01-20 14:46:32 -08:00
2013-10-09 20:04:08 -05:00
2013-02-22 13:09:51 -08:00
2014-01-06 21:25:18 -08:00
2013-11-06 09:48:43 +02:00
2013-01-29 15:13:24 -08:00
2012-06-17 10:51:01 -07:00
2013-01-28 16:59:55 -08:00
2013-12-04 14:31:28 -08:00
2013-05-07 07:20:17 -07:00
2012-10-02 18:01:25 +01:00
2013-11-08 14:15:45 -08:00
2014-01-13 19:56:25 +01:00
2012-12-14 22:37:13 +00:00
2013-05-28 08:46:50 +02:00
2013-02-03 18:16:27 -05:00
2013-09-24 06:02:24 +10:00
2012-09-21 12:45:27 -07:00
2014-01-06 21:25:18 -08:00
2013-08-06 14:20:13 -07:00
2013-08-09 07:54:00 -07:00
2013-09-09 12:05:37 -04:00
2012-10-02 18:01:25 +01:00
2013-05-02 11:27:35 -07:00
2013-05-02 11:27:35 -07:00
2012-10-02 18:01:25 +01:00
2012-12-14 22:37:13 +00:00
2013-08-06 14:18:30 -07:00
2013-07-16 15:24:04 -07:00
2013-05-09 13:46:38 -04:00
2013-08-06 14:18:08 -07:00
2013-08-06 14:18:33 -07:00
2013-08-02 16:17:47 -07:00
2013-11-13 20:21:47 +01:00
2014-01-20 12:03:57 -08:00
2013-04-12 16:56:47 -07:00
2013-09-11 15:57:09 -07:00
2013-07-29 13:12:45 -07:00
2012-11-13 15:48:40 -05:00
2013-11-08 14:15:45 -08:00
2014-01-15 22:28:48 -08:00
2013-10-26 12:27:37 +02:00
2014-01-04 13:54:50 -08:00
2014-01-20 14:46:32 -08:00
2013-03-03 22:55:19 -05:00
2013-11-06 20:00:05 +01:00
2012-10-02 18:01:25 +01:00
2012-09-05 10:52:23 +02:00
2012-09-24 12:38:09 -04:00
2012-12-14 22:37:13 +00:00
2013-12-12 10:49:56 +01:00
2012-12-14 22:37:13 +00:00
2013-08-06 14:21:08 -07:00
2013-12-13 08:44:30 -07:00
2013-01-25 09:23:50 +01:00
2013-01-25 09:23:50 +01:00
2013-08-21 21:08:35 +10:00
2013-01-25 09:23:50 +01:00
2013-12-06 17:17:42 -08:00