Commit d60beb1f authored by Liam R. Howlett's avatar Liam R. Howlett Committed by Andrew Morton

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.comSigned-off-by: default avatarLiam R. Howlett <Liam.Howlett@oracle.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent f2ebfe43
...@@ -1786,8 +1786,8 @@ long ksys_shmdt(char __user *shmaddr) ...@@ -1786,8 +1786,8 @@ long ksys_shmdt(char __user *shmaddr)
*/ */
file = vma->vm_file; file = vma->vm_file;
size = i_size_read(file_inode(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); do_vmi_munmap(&vmi, mm, vma->vm_start,
mas_pause(&vmi.mas); vma->vm_end - vma->vm_start, NULL, false);
/* /*
* We discovered the size of the shm segment, so * We discovered the size of the shm segment, so
* break out of here and fall through to the next * break out of here and fall through to the next
...@@ -1810,10 +1810,9 @@ long ksys_shmdt(char __user *shmaddr) ...@@ -1810,10 +1810,9 @@ long ksys_shmdt(char __user *shmaddr)
/* finding a matching vma now does not alter retval */ /* finding a matching vma now does not alter retval */
if ((vma->vm_ops == &shm_vm_ops) && if ((vma->vm_ops == &shm_vm_ops) &&
((vma->vm_start - addr)/PAGE_SIZE == vma->vm_pgoff) && ((vma->vm_start - addr)/PAGE_SIZE == vma->vm_pgoff) &&
(vma->vm_file == file)) { (vma->vm_file == file))
do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL); do_vmi_munmap(&vmi, mm, vma->vm_start,
mas_pause(&vmi.mas); vma->vm_end - vma->vm_start, NULL, false);
}
vma = vma_next(&vmi); vma = vma_next(&vmi);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment