]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm: replace VM_LOCKED_CLEAR_MASK with VM_LOCKED_MASK
authorSuren Baghdasaryan <surenb@google.com>
Fri, 28 Oct 2022 23:31:17 +0000 (23:31 +0000)
committerSuren Baghdasaryan <surenb@google.com>
Wed, 23 Nov 2022 02:09:44 +0000 (02:09 +0000)
To simplify the usage of VM_LOCKED_CLEAR_MASK in clear_vm_flags(),
replace it with VM_LOCKED_MASK bitmask and convert all users.

Signed-off-by: Suren Baghdasaryan <surenb@google.com>
include/linux/mm.h
kernel/fork.c
mm/hugetlb.c
mm/mlock.c
mm/mmap.c
mm/mremap.c

index 99cd1312534b1473a459e56c48f24151527dc4a9..440013141534c0f8b79e49a4f630ea9bb9b79e01 100644 (file)
@@ -415,8 +415,8 @@ extern unsigned int kobjsize(const void *objp);
 /* This mask defines which mm->def_flags a process can inherit its parent */
 #define VM_INIT_DEF_MASK       VM_NOHUGEPAGE
 
-/* This mask is used to clear all the VMA flags used by mlock */
-#define VM_LOCKED_CLEAR_MASK   (~(VM_LOCKED | VM_LOCKONFAULT))
+/* This mask represents all the VMA flag bits used by mlock */
+#define VM_LOCKED_MASK (VM_LOCKED | VM_LOCKONFAULT)
 
 /* Arch-specific flags to clear when updating VM flags on protection change */
 #ifndef VM_ARCH_CLEAR
index b1b149ab9f39e4ee32934b84554d64423a6cf3d7..596b412616b8e2dd97701d78e34f87e157a8e142 100644 (file)
@@ -670,7 +670,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
                        tmp->anon_vma = NULL;
                } else if (anon_vma_fork(tmp, mpnt))
                        goto fail_nomem_anon_vma_fork;
-               tmp->vm_flags &= ~(VM_LOCKED | VM_LOCKONFAULT);
+               clear_vm_flags(tmp, VM_LOCKED_MASK);
                file = tmp->vm_file;
                if (file) {
                        struct address_space *mapping = file->f_mapping;
index e48f8ef45b17ff9cfd225815ad599345dcbf5491..bf88276fc3b26e6a3cfc28487cfc5143f9097d5d 100644 (file)
@@ -6740,8 +6740,8 @@ static unsigned long page_table_shareable(struct vm_area_struct *svma,
        unsigned long s_end = sbase + PUD_SIZE;
 
        /* Allow segments to share if only one is marked locked */
-       unsigned long vm_flags = vma->vm_flags & VM_LOCKED_CLEAR_MASK;
-       unsigned long svm_flags = svma->vm_flags & VM_LOCKED_CLEAR_MASK;
+       unsigned long vm_flags = vma->vm_flags & ~VM_LOCKED_MASK;
+       unsigned long svm_flags = svma->vm_flags & ~VM_LOCKED_MASK;
 
        /*
         * match the virtual addresses, permission and the alignment of the
index 7032f6dd0ce198301598ef4811864f83bb5c2c47..06aa9e204fac81085dc9ad3969d099fb2d32a5e7 100644 (file)
@@ -490,7 +490,7 @@ static int apply_vma_lock_flags(unsigned long start, size_t len,
                prev = mas_prev(&mas, 0);
 
        for (nstart = start ; ; ) {
-               vm_flags_t newflags = vma->vm_flags & VM_LOCKED_CLEAR_MASK;
+               vm_flags_t newflags = vma->vm_flags & ~VM_LOCKED_MASK;
 
                newflags |= flags;
 
@@ -662,7 +662,7 @@ static int apply_mlockall_flags(int flags)
        struct vm_area_struct *vma, *prev = NULL;
        vm_flags_t to_add = 0;
 
-       current->mm->def_flags &= VM_LOCKED_CLEAR_MASK;
+       current->mm->def_flags &= ~VM_LOCKED_MASK;
        if (flags & MCL_FUTURE) {
                current->mm->def_flags |= VM_LOCKED;
 
@@ -682,7 +682,7 @@ static int apply_mlockall_flags(int flags)
        mas_for_each(&mas, vma, ULONG_MAX) {
                vm_flags_t newflags;
 
-               newflags = vma->vm_flags & VM_LOCKED_CLEAR_MASK;
+               newflags = vma->vm_flags & ~VM_LOCKED_MASK;
                newflags |= to_add;
 
                /* Ignore errors */
index 374e0da0f711d82af312ca51f922f9a697ecfcf1..4e1bdaa1e0b429bc5fe907dd82834e8a6d500674 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -2724,7 +2724,7 @@ expanded:
                if ((vm_flags & VM_SPECIAL) || vma_is_dax(vma) ||
                                        is_vm_hugetlb_page(vma) ||
                                        vma == get_gate_vma(current->mm))
-                       vma->vm_flags &= VM_LOCKED_CLEAR_MASK;
+                       clear_vm_flags(vma, VM_LOCKED_MASK);
                else
                        mm->locked_vm += (len >> PAGE_SHIFT);
        }
@@ -3400,8 +3400,8 @@ static struct vm_area_struct *__install_special_mapping(
        vma->vm_start = addr;
        vma->vm_end = addr + len;
 
-       vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND | VM_SOFTDIRTY;
-       vma->vm_flags &= VM_LOCKED_CLEAR_MASK;
+       init_vm_flags(vma, (vm_flags | mm->def_flags |
+                     VM_DONTEXPAND | VM_SOFTDIRTY) & ~VM_LOCKED_MASK);
        vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
 
        vma->vm_ops = ops;
index e465ffe279bb03ac38d20bf5b83ae1d4eb700c3c..4e91bb5311c63f06f33ec12cd2e74e444d70e0f4 100644 (file)
@@ -686,7 +686,7 @@ static unsigned long move_vma(struct vm_area_struct *vma,
 
        if (unlikely(!err && (flags & MREMAP_DONTUNMAP))) {
                /* We always clear VM_LOCKED[ONFAULT] on the old vma */
-               vma->vm_flags &= VM_LOCKED_CLEAR_MASK;
+               clear_vm_flags(vma, VM_LOCKED_MASK);
 
                /*
                 * anon_vma links of the old vma is no longer needed after its page