summaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
authorLiam R. Howlett <Liam.Howlett@Oracle.com>2023-01-20 17:26:16 +0100
committerAndrew Morton <akpm@linux-foundation.org>2023-02-10 01:51:32 +0100
commitd60beb1f698a429825ea2c463ee9e3dc3b1a79b7 (patch)
treea2b55fa84e745da3ff5b242b2dd40a90b7730684 /ipc
parentmm: add temporary vma iterator versions of vma_merge(), split_vma(), and __sp... (diff)
downloadlinux-d60beb1f698a429825ea2c463ee9e3dc3b1a79b7.tar.xz
linux-d60beb1f698a429825ea2c463ee9e3dc3b1a79b7.zip
ipc/shm: use the vma iterator for munmap calls
Pass through the vma iterator to do_vmi_munmap() to handle the iterator state internally Link: https://lkml.kernel.org/r/20230120162650.984577-16-Liam.Howlett@oracle.com Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'ipc')
-rw-r--r--ipc/shm.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/ipc/shm.c b/ipc/shm.c
index bd2fcc4d454e..1c6a6b319a49 100644
--- 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);
}