Konstantin Khlebnikov 4fe7efdbdf mm: correctly synchronize rss-counters at exit/exec
do_exit() and exec_mmap() call sync_mm_rss() before mm_release() does
put_user(clear_child_tid) which can update task->rss_stat and thus make
mm->rss_stat inconsistent.  This triggers the "BUG:" printk in check_mm().

Let's fix this bug in the safest way, and optimize/cleanup this later.

Reported-by: Markus Trippelsdorf <markus@trippelsdorf.de>
Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-20 14:39:36 -07:00
..
2012-05-29 23:28:34 -04:00
2012-05-29 23:28:34 -04:00
2012-05-28 09:54:45 -07:00
2012-05-29 23:28:33 -04:00
2012-05-28 09:54:45 -07:00
2012-05-28 09:54:45 -07:00
2012-05-29 23:28:33 -04:00
2012-05-28 09:54:45 -07:00
2012-05-29 23:28:33 -04:00
2012-06-15 17:37:23 -07:00
2012-05-29 23:28:40 -04:00
2012-05-28 09:54:45 -07:00
2012-03-20 21:29:52 -04:00
2012-03-20 21:29:38 -04:00
2012-03-30 17:31:56 -07:00
2012-05-28 09:54:45 -07:00
2012-05-29 23:28:33 -04:00
2012-05-28 09:54:45 -07:00
2012-05-29 16:22:23 -07:00
2012-03-20 21:29:46 -04:00
2012-03-20 21:29:46 -04:00
2012-05-28 09:54:45 -07:00
2012-05-29 23:28:41 -04:00
2012-06-01 12:12:00 -04:00
2012-05-29 23:28:31 -04:00
2012-03-20 21:29:38 -04:00
2012-05-29 23:28:41 -04:00
2012-05-29 23:28:41 -04:00
2012-05-29 23:28:29 -04:00