/*
         * 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);
 }
 
 /*