]> git.baikalelectronics.ru Git - kernel.git/commitdiff
mm: _install_special_mapping() apply VM_LOCKED_CLEAR_MASK
authorHugh Dickins <hughd@google.com>
Tue, 22 Mar 2022 21:42:36 +0000 (14:42 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Mar 2022 22:57:05 +0000 (15:57 -0700)
_install_special_mapping() adds the VM_SPECIAL bit VM_DONTEXPAND (and
never attempts to update locked_vm), so it ought to be consistent with
mmap_region() and mlock_fixup(), making sure not to add VM_LOCKED or
VM_LOCKONFAULT.  I doubt that this fixes any problem in practice: just
do it for consistency.

Link: https://lkml.kernel.org/r/a85315a9-21d1-6133-c5fc-c89863dfb25b@google.com
Signed-off-by: Hugh Dickins <hughd@google.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>
mm/mmap.c

index 18875c216f8db8cf6891839744cf6dcafd65cf5f..c5c47d95b643097f954b44d179ba10601a56626e 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -3448,6 +3448,7 @@ static struct vm_area_struct *__install_special_mapping(
        vma->vm_end = addr + len;
 
        vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND | VM_SOFTDIRTY;
+       vma->vm_flags &= VM_LOCKED_CLEAR_MASK;
        vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
 
        vma->vm_ops = ops;