]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ipc/shm: Use the vma iterator for munmap calls
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Mon, 14 Nov 2022 19:53:13 +0000 (14:53 -0500)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Tue, 13 Dec 2022 20:58:35 +0000 (15:58 -0500)
Pass through the vma iterator to do_vmi_munmap() to handle the iterator
state internally

Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
ipc/shm.c

index bd2fcc4d454e0680a00a0a328f98c0b7ed6accf4..1c6a6b319a49eb54f740dce1edf6a2011a469a32 100644 (file)
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -1786,8 +1786,8 @@ long ksys_shmdt(char __user *shmaddr)
                         */
                        file = vma->vm_file;
                        size = i_size_read(file_inode(vma->vm_file));
-                       do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL);
-                       mas_pause(&vmi.mas);
+                       do_vmi_munmap(&vmi, mm, vma->vm_start,
+                             vma->vm_end - vma->vm_start, NULL, false);
                        /*
                         * We discovered the size of the shm segment, so
                         * break out of here and fall through to the next
@@ -1810,10 +1810,9 @@ long ksys_shmdt(char __user *shmaddr)
                /* finding a matching vma now does not alter retval */
                if ((vma->vm_ops == &shm_vm_ops) &&
                    ((vma->vm_start - addr)/PAGE_SIZE == vma->vm_pgoff) &&
-                   (vma->vm_file == file)) {
-                       do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL);
-                       mas_pause(&vmi.mas);
-               }
+                   (vma->vm_file == file))
+                       do_vmi_munmap(&vmi, mm, vma->vm_start,
+                             vma->vm_end - vma->vm_start, NULL, false);
 
                vma = vma_next(&vmi);
        }