]> www.infradead.org Git - users/willy/xarray.git/commitdiff
mm: move vma_modify() and helpers to internal header
authorLorenzo Stoakes <lorenzo.stoakes@oracle.com>
Mon, 29 Jul 2024 11:50:36 +0000 (12:50 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 2 Sep 2024 03:25:54 +0000 (20:25 -0700)
These are core VMA manipulation functions which invoke VMA splitting and
merging and should not be directly accessed from outside of mm/.

Link: https://lkml.kernel.org/r/5efde0c6342a8860d5ffc90b415f3989fd8ed0b2.1722251717.git.lorenzo.stoakes@oracle.com
Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Reviewed-by: Liam R. Howlett <Liam.Howlett@oracle.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Brendan Higgins <brendanhiggins@google.com>
Cc: Christian Brauner <brauner@kernel.org>
Cc: David Gow <davidgow@google.com>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Kees Cook <kees@kernel.org>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Rae Moar <rmoar@google.com>
Cc: SeongJae Park <sj@kernel.org>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Pengfei Xu <pengfei.xu@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/mm.h
mm/internal.h

index 153a4662a0cd3f5cb67373407320c6d64c910f00..c4054e68dc0948e036339f3b4ee7874e1faab9e1 100644 (file)
@@ -3279,66 +3279,6 @@ extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
        unsigned long addr, unsigned long len, pgoff_t pgoff,
        bool *need_rmap_locks);
 extern void exit_mmap(struct mm_struct *);
-struct vm_area_struct *vma_modify(struct vma_iterator *vmi,
-                                 struct vm_area_struct *prev,
-                                 struct vm_area_struct *vma,
-                                 unsigned long start, unsigned long end,
-                                 unsigned long vm_flags,
-                                 struct mempolicy *policy,
-                                 struct vm_userfaultfd_ctx uffd_ctx,
-                                 struct anon_vma_name *anon_name);
-
-/* We are about to modify the VMA's flags. */
-static inline struct vm_area_struct
-*vma_modify_flags(struct vma_iterator *vmi,
-                 struct vm_area_struct *prev,
-                 struct vm_area_struct *vma,
-                 unsigned long start, unsigned long end,
-                 unsigned long new_flags)
-{
-       return vma_modify(vmi, prev, vma, start, end, new_flags,
-                         vma_policy(vma), vma->vm_userfaultfd_ctx,
-                         anon_vma_name(vma));
-}
-
-/* We are about to modify the VMA's flags and/or anon_name. */
-static inline struct vm_area_struct
-*vma_modify_flags_name(struct vma_iterator *vmi,
-                      struct vm_area_struct *prev,
-                      struct vm_area_struct *vma,
-                      unsigned long start,
-                      unsigned long end,
-                      unsigned long new_flags,
-                      struct anon_vma_name *new_name)
-{
-       return vma_modify(vmi, prev, vma, start, end, new_flags,
-                         vma_policy(vma), vma->vm_userfaultfd_ctx, new_name);
-}
-
-/* We are about to modify the VMA's memory policy. */
-static inline struct vm_area_struct
-*vma_modify_policy(struct vma_iterator *vmi,
-                  struct vm_area_struct *prev,
-                  struct vm_area_struct *vma,
-                  unsigned long start, unsigned long end,
-                  struct mempolicy *new_pol)
-{
-       return vma_modify(vmi, prev, vma, start, end, vma->vm_flags,
-                         new_pol, vma->vm_userfaultfd_ctx, anon_vma_name(vma));
-}
-
-/* We are about to modify the VMA's flags and/or uffd context. */
-static inline struct vm_area_struct
-*vma_modify_flags_uffd(struct vma_iterator *vmi,
-                      struct vm_area_struct *prev,
-                      struct vm_area_struct *vma,
-                      unsigned long start, unsigned long end,
-                      unsigned long new_flags,
-                      struct vm_userfaultfd_ctx new_ctx)
-{
-       return vma_modify(vmi, prev, vma, start, end, new_flags,
-                         vma_policy(vma), new_ctx, anon_vma_name(vma));
-}
 
 static inline int check_data_rlimit(unsigned long rlim,
                                    unsigned long new,
index b4d86436565b93a3c5773362f024652eea7b195b..81564ce0f9e29f2fce7af0ad104e73bcb30e624c 100644 (file)
@@ -1244,6 +1244,67 @@ struct vm_area_struct *vma_merge_extend(struct vma_iterator *vmi,
                                        struct vm_area_struct *vma,
                                        unsigned long delta);
 
+struct vm_area_struct *vma_modify(struct vma_iterator *vmi,
+                                 struct vm_area_struct *prev,
+                                 struct vm_area_struct *vma,
+                                 unsigned long start, unsigned long end,
+                                 unsigned long vm_flags,
+                                 struct mempolicy *policy,
+                                 struct vm_userfaultfd_ctx uffd_ctx,
+                                 struct anon_vma_name *anon_name);
+
+/* We are about to modify the VMA's flags. */
+static inline struct vm_area_struct
+*vma_modify_flags(struct vma_iterator *vmi,
+                 struct vm_area_struct *prev,
+                 struct vm_area_struct *vma,
+                 unsigned long start, unsigned long end,
+                 unsigned long new_flags)
+{
+       return vma_modify(vmi, prev, vma, start, end, new_flags,
+                         vma_policy(vma), vma->vm_userfaultfd_ctx,
+                         anon_vma_name(vma));
+}
+
+/* We are about to modify the VMA's flags and/or anon_name. */
+static inline struct vm_area_struct
+*vma_modify_flags_name(struct vma_iterator *vmi,
+                      struct vm_area_struct *prev,
+                      struct vm_area_struct *vma,
+                      unsigned long start,
+                      unsigned long end,
+                      unsigned long new_flags,
+                      struct anon_vma_name *new_name)
+{
+       return vma_modify(vmi, prev, vma, start, end, new_flags,
+                         vma_policy(vma), vma->vm_userfaultfd_ctx, new_name);
+}
+
+/* We are about to modify the VMA's memory policy. */
+static inline struct vm_area_struct
+*vma_modify_policy(struct vma_iterator *vmi,
+                  struct vm_area_struct *prev,
+                  struct vm_area_struct *vma,
+                  unsigned long start, unsigned long end,
+                  struct mempolicy *new_pol)
+{
+       return vma_modify(vmi, prev, vma, start, end, vma->vm_flags,
+                         new_pol, vma->vm_userfaultfd_ctx, anon_vma_name(vma));
+}
+
+/* We are about to modify the VMA's flags and/or uffd context. */
+static inline struct vm_area_struct
+*vma_modify_flags_uffd(struct vma_iterator *vmi,
+                      struct vm_area_struct *prev,
+                      struct vm_area_struct *vma,
+                      unsigned long start, unsigned long end,
+                      unsigned long new_flags,
+                      struct vm_userfaultfd_ctx new_ctx)
+{
+       return vma_modify(vmi, prev, vma, start, end, new_flags,
+                         vma_policy(vma), new_ctx, anon_vma_name(vma));
+}
+
 enum {
        /* mark page accessed */
        FOLL_TOUCH = 1 << 16,