···9292 for (i=0; i<info->nr_pages; i++)9393 put_page(info->ring_pages[i]);94949595- if (info->mmap_size) {9696- down_write(&ctx->mm->mmap_sem);9797- do_munmap(ctx->mm, info->mmap_base, info->mmap_size);9898- up_write(&ctx->mm->mmap_sem);9999- }9595+ if (info->mmap_size)9696+ vm_munmap(ctx->mm, info->mmap_base, info->mmap_size);1009710198 if (info->ring_pages && info->ring_pages != info->internal_pages)10299 kfree(info->ring_pages);
+1
include/linux/mm.h
···1417141714181418/* These take the mm semaphore themselves */14191419extern unsigned long vm_brk(unsigned long, unsigned long);14201420+extern int vm_munmap(struct mm_struct *, unsigned long, size_t);1420142114211422/* truncate.c */14221423extern void truncate_inode_pages(struct address_space *, loff_t);