mshare() maps in vma for the calling task. These vmas should be unmapped when the task calls mshare_unlink(). Add minimal code to unmap vmas. Signed-off-by: Khalid Aziz <khalid.aziz@xxxxxxxxxx> --- mm/mshare.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mm/mshare.c b/mm/mshare.c index 40c495ffc0ca..ec23d1db79b2 100644 --- a/mm/mshare.c +++ b/mm/mshare.c @@ -490,6 +490,17 @@ SYSCALL_DEFINE1(mshare_unlink, const char *, name) mmput(info->mm); kfree(info); } else { + /* + * TODO: If mshare'd range is still mapped in the process, + * it should be unmapped. Following is minimal code and + * might need fix up + */ + unsigned long tmp; + + tmp = info->mm->task_size - info->mm->mmap_base; + if (info->host_mm != current->mm) + vm_munmap(info->mm->mmap_base, tmp); + dput(dentry); } -- 2.32.0