aboutsummaryrefslogtreecommitdiff
path: root/drivers/media/v4l2-core/videobuf2-vmalloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/v4l2-core/videobuf2-vmalloc.c')
-rw-r--r--drivers/media/v4l2-core/videobuf2-vmalloc.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/media/v4l2-core/videobuf2-vmalloc.c b/drivers/media/v4l2-core/videobuf2-vmalloc.c
index f6656fefc035..2fe4c27f524a 100644
--- a/drivers/media/v4l2-core/videobuf2-vmalloc.c
+++ b/drivers/media/v4l2-core/videobuf2-vmalloc.c
@@ -89,7 +89,7 @@ static void *vb2_vmalloc_get_userptr(void *alloc_ctx, unsigned long vaddr,
offset = vaddr & ~PAGE_MASK;
buf->size = size;
- down_read(&current->mm->mmap_sem);
+
vma = find_vma(current->mm, vaddr);
if (vma && (vma->vm_flags & VM_PFNMAP) && (vma->vm_pgoff)) {
if (vb2_get_contig_userptr(vaddr, size, &vma, &physp))
@@ -121,7 +121,6 @@ static void *vb2_vmalloc_get_userptr(void *alloc_ctx, unsigned long vaddr,
if (!buf->vaddr)
goto fail_get_user_pages;
}
- up_read(&current->mm->mmap_sem);
buf->vaddr += offset;
return buf;
@@ -134,7 +133,6 @@ fail_get_user_pages:
kfree(buf->pages);
fail_pages_array_alloc:
- up_read(&current->mm->mmap_sem);
kfree(buf);
return NULL;
@@ -146,7 +144,6 @@ static void vb2_vmalloc_put_userptr(void *buf_priv)
unsigned long vaddr = (unsigned long)buf->vaddr & PAGE_MASK;
unsigned int i;
- down_read(&current->mm->mmap_sem);
if (buf->pages) {
if (vaddr)
vm_unmap_ram((void *)vaddr, buf->n_pages);
@@ -160,7 +157,6 @@ static void vb2_vmalloc_put_userptr(void *buf_priv)
vb2_put_vma(buf->vma);
iounmap((__force void __iomem *)buf->vaddr);
}
- up_read(&current->mm->mmap_sem);
kfree(buf);
}