]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm: clean up unmap_region() argument list
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Fri, 30 Aug 2024 04:00:53 +0000 (00:00 -0400)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 4 Sep 2024 04:15:51 +0000 (21:15 -0700)
With the only caller to unmap_region() being the error path of
mmap_region(), the argument list can be significantly reduced.

Link: https://lkml.kernel.org/r/20240830040101.822209-14-Liam.Howlett@oracle.com
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Bert Karwatzki <spasswolf@web.de>
Cc: Jeff Xu <jeffxu@chromium.org>
Cc: Jiri Olsa <olsajiri@gmail.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Lorenzo Stoakes <lstoakes@gmail.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: "Paul E. McKenney" <paulmck@kernel.org>
Cc: Paul Moore <paul@paul-moore.com>
Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/mmap.c
mm/vma.c
mm/vma.h

index 08cf9199f314cbb9bb6d155dbf04c29a3de3dc18..304dc085533a10cee254e1aa612dc3010a55b019 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1615,8 +1615,7 @@ unmap_and_free_vma:
 
                vma_iter_set(&vmi, vma->vm_end);
                /* Undo any partial mapping done by a device driver. */
-               unmap_region(mm, &vmi.mas, vma, prev, next, vma->vm_start,
-                            vma->vm_end, vma->vm_end, true);
+               unmap_region(&vmi.mas, vma, prev, next);
        }
        if (writable_file_mapping)
                mapping_unmap_writable(file->f_mapping);
index c71dda026191dec49890f54b8a9b36d04089b0b5..83c5c46c67b95012fc0a95f38f3dd4267c38d17e 100644 (file)
--- a/mm/vma.c
+++ b/mm/vma.c
@@ -155,22 +155,21 @@ void remove_vma(struct vm_area_struct *vma, bool unreachable)
  *
  * Called with the mm semaphore held.
  */
-void unmap_region(struct mm_struct *mm, struct ma_state *mas,
-               struct vm_area_struct *vma, struct vm_area_struct *prev,
-               struct vm_area_struct *next, unsigned long start,
-               unsigned long end, unsigned long tree_end, bool mm_wr_locked)
+void unmap_region(struct ma_state *mas, struct vm_area_struct *vma,
+               struct vm_area_struct *prev, struct vm_area_struct *next)
 {
+       struct mm_struct *mm = vma->vm_mm;
        struct mmu_gather tlb;
-       unsigned long mt_start = mas->index;
 
        lru_add_drain();
        tlb_gather_mmu(&tlb, mm);
        update_hiwater_rss(mm);
-       unmap_vmas(&tlb, mas, vma, start, end, tree_end, mm_wr_locked);
-       mas_set(mas, mt_start);
+       unmap_vmas(&tlb, mas, vma, vma->vm_start, vma->vm_end, vma->vm_end,
+                  /* mm_wr_locked = */ true);
+       mas_set(mas, vma->vm_end);
        free_pgtables(&tlb, mas, vma, prev ? prev->vm_end : FIRST_USER_ADDRESS,
-                                next ? next->vm_start : USER_PGTABLES_CEILING,
-                                mm_wr_locked);
+                     next ? next->vm_start : USER_PGTABLES_CEILING,
+                     /* mm_wr_locked = */ true);
        tlb_finish_mmu(&tlb);
 }
 
index 8afaa661224d4554cd05c13411b7acaf172a144a..82ba481743411adb0cb40c6a15a2d5bafc42aa43 100644 (file)
--- a/mm/vma.h
+++ b/mm/vma.h
@@ -149,10 +149,8 @@ int do_vmi_munmap(struct vma_iterator *vmi, struct mm_struct *mm,
 
 void remove_vma(struct vm_area_struct *vma, bool unreachable);
 
-void unmap_region(struct mm_struct *mm, struct ma_state *mas,
-               struct vm_area_struct *vma, struct vm_area_struct *prev,
-               struct vm_area_struct *next, unsigned long start,
-               unsigned long end, unsigned long tree_end, bool mm_wr_locked);
+void unmap_region(struct ma_state *mas, struct vm_area_struct *vma,
+               struct vm_area_struct *prev, struct vm_area_struct *next);
 
 /* Required by mmap_region(). */
 bool