]> www.infradead.org Git - users/jedix/linux-maple.git/commit
mm: fix the racy mm->locked_vm change in
authorOleg Nesterov <oleg@redhat.com>
Fri, 6 Nov 2015 02:48:14 +0000 (18:48 -0800)
committerBrian Maly <brian.maly@oracle.com>
Tue, 10 Sep 2019 14:52:15 +0000 (10:52 -0400)
commit6d578e3dac4bf2c5ced39467e963f3ab42bd1edd
treeec45483592947bd725abea03141e9f4eea750870
parent1417f89078e9d4b3f6fa9686e88d142c416efe38
mm: fix the racy mm->locked_vm change in

"mm->locked_vm += grow" and vm_stat_account() in acct_stack_growth() are
not safe; multiple threads using the same ->mm can do this at the same
time trying to expans different vma's under down_read(mmap_sem).  This
means that one of the "locked_vm += grow" changes can be lost and we can
miss munlock_vma_pages_all() later.

Move this code into the caller(s) under mm->page_table_lock.  All other
updates to ->locked_vm hold mmap_sem for writing.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Hugh Dickins <hughd@google.com>
Cc: Andrey Konovalov <andreyknvl@google.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: Sasha Levin <sasha.levin@oracle.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Orabug: 30145754
(cherry picked from commit 87e8827b37c0c391d9915d0dc6a06c9b5f9cac65)
Signed-off-by: Tong Chen <tong.c.chen@oracle.com>
Reviewed-by: Junxiao Bi <junxiao.bi@oracle.com>
Signed-off-by: Brian Maly <brian.maly@oracle.com>
mm/mmap.c