/*
* does the actual unmapping
*/
- r = vm_munmap(current->mm, (unsigned long)vaddr, size);
+ r = vm_munmap((unsigned long)vaddr, size);
if (r !=0) {
printk(KERN_ERR "perfmon: [%d] unable to unmap sampling buffer @%p size=%lu\n", task_pid_nr(task), vaddr, size);
if (invalid_64bit_range(addr, len))
return -EINVAL;
- return vm_munmap(current->mm, addr, len);
+ return vm_munmap(addr, len);
}
extern unsigned long do_mremap(unsigned long addr,
if (!user_alloc && !old.user_alloc && old.rmap && !npages) {
int ret;
- ret = vm_munmap(current->mm, old.userspace_addr,
+ ret = vm_munmap(old.userspace_addr,
old.npages * PAGE_SIZE);
if (ret < 0)
printk(KERN_WARNING
if (buf_priv->currently_mapped != I810_BUF_MAPPED)
return -EINVAL;
- retcode = vm_munmap(current->mm,
- (unsigned long)buf_priv->virtual,
+ retcode = vm_munmap((unsigned long)buf_priv->virtual,
(size_t) buf->total);
buf_priv->currently_mapped = I810_BUF_UNMAPPED;
if (info->mmap_size) {
BUG_ON(ctx->mm != current->mm);
- vm_munmap(ctx->mm, info->mmap_base, info->mmap_size);
+ vm_munmap(info->mmap_base, info->mmap_size);
}
if (info->ring_pages && info->ring_pages != info->internal_pages)
/* These take the mm semaphore themselves */
extern unsigned long vm_brk(unsigned long, unsigned long);
-extern int vm_munmap(struct mm_struct *, unsigned long, size_t);
+extern int vm_munmap(unsigned long, size_t);
extern unsigned long vm_mmap(struct file *, unsigned long,
unsigned long, unsigned long,
unsigned long, unsigned long);
}
EXPORT_SYMBOL(do_munmap);
-int vm_munmap(struct mm_struct *mm, unsigned long start, size_t len)
+int vm_munmap(unsigned long start, size_t len)
{
int ret;
+ struct mm_struct *mm = current->mm;
down_write(&mm->mmap_sem);
ret = do_munmap(mm, start, len);
SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len)
{
profile_munmap(addr);
- return vm_munmap(current->mm, addr, len);
+ return vm_munmap(addr, len);
}
static inline void verify_mm_writelocked(struct mm_struct *mm)
}
EXPORT_SYMBOL(do_munmap);
-int vm_munmap(struct mm_struct *mm, unsigned long addr, size_t len)
+int vm_munmap(unsigned long addr, size_t len)
{
+ struct mm_struct *mm = current->mm;
int ret;
down_write(&mm->mmap_sem);
SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len)
{
- return vm_munmap(current->mm, addr, len);
+ return vm_munmap(addr, len);
}
/*