Commit 83570621 authored by Andrew F. Davis's avatar Andrew F. Davis Committed by Mauro Carvalho Chehab

media: videobuf-dma-contig: Use size of buffer in mmap not vma size

The size of the vma can be larger than the size of the backing buffer.
Use the buffer size over vma size to prevent exposing extra memory
to userspace.
Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
Reviewed-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 6211e44a
...@@ -280,7 +280,6 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q, ...@@ -280,7 +280,6 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q,
struct videobuf_dma_contig_memory *mem; struct videobuf_dma_contig_memory *mem;
struct videobuf_mapping *map; struct videobuf_mapping *map;
int retval; int retval;
unsigned long size;
dev_dbg(q->dev, "%s\n", __func__); dev_dbg(q->dev, "%s\n", __func__);
...@@ -303,7 +302,6 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q, ...@@ -303,7 +302,6 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q,
goto error; goto error;
/* Try to remap memory */ /* Try to remap memory */
size = vma->vm_end - vma->vm_start;
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
/* the "vm_pgoff" is just used in v4l2 to find the /* the "vm_pgoff" is just used in v4l2 to find the
...@@ -314,7 +312,7 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q, ...@@ -314,7 +312,7 @@ static int __videobuf_mmap_mapper(struct videobuf_queue *q,
*/ */
vma->vm_pgoff = 0; vma->vm_pgoff = 0;
retval = vm_iomap_memory(vma, mem->dma_handle, size); retval = vm_iomap_memory(vma, mem->dma_handle, mem->size);
if (retval) { if (retval) {
dev_err(q->dev, "mmap: remap failed with error %d. ", dev_err(q->dev, "mmap: remap failed with error %d. ",
retval); retval);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment