]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm: Clean up unmap_region() argument list
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Thu, 15 Aug 2024 19:22:49 +0000 (15:22 -0400)
committerLiam R. Howlett <Liam.Howlett@Oracle.com>
Fri, 23 Aug 2024 12:46:02 +0000 (08:46 -0400)
With the only caller to unmap_region() being the error path of
mmap_region(), the argument list can be significantly reduced.

Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
mm/mmap.c
mm/vma.c
mm/vma.h

index 9285bdf14c4f4d0369be7ab12fb34b994b79df4a..71b2bad717b60cca86ec599e6d3a67c9d903c68a 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1613,8 +1613,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 efacc8741e3ee04fc9c0f13605d3e5fdd6d29358..e97b41aa0b874e8ff210e084b3886301e2213702 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 7bc0f9e7751b2db27154906c9a40ccbc689a5570..6028fdf792579ce00a46d489f44337eba7cf7c85 100644 (file)
--- a/mm/vma.h
+++ b/mm/vma.h
@@ -147,10 +147,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