The do_munmap() function removes an address interval from a specified process address space. The function is declared in <linux/mm.h>: int do_munmap(struct mm_struct *mm, unsigned long start, size_t len) The first parameter specifies the address space from which the interval starting at address start of length len bytes is removed. On success, zero is returned. Otherwise, a negative error code is returned.
The munmap() system call is exported to user-space as a means to allow processes to remove address intervals from their address space; it is the complement of the mmap() system call: int munmap(void *start, size_t length) The system call is defined in mm/mmap.c and acts as a very simple wrapper to do_munmap():
asmlinkage long sys_munmap(unsigned long addr, size_t len) { int ret; struct mm_struct *mm; mm = current->mm; down_write(&mm->mmap_sem); ret = do_munmap(mm, addr, len); up_write(&mm->mmap_sem); return ret; }