aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/samsung/jpeg/jpeg_dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/samsung/jpeg/jpeg_dev.c')
-rw-r--r--drivers/media/video/samsung/jpeg/jpeg_dev.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/media/video/samsung/jpeg/jpeg_dev.c b/drivers/media/video/samsung/jpeg/jpeg_dev.c
index 4038fd2..6ebcfb6 100644
--- a/drivers/media/video/samsung/jpeg/jpeg_dev.c
+++ b/drivers/media/video/samsung/jpeg/jpeg_dev.c
@@ -31,6 +31,7 @@
#include <linux/clk.h>
#include <linux/semaphore.h>
#include <linux/vmalloc.h>
+#include <linux/cma.h>
#include <asm/page.h>
#include <linux/sched.h>
@@ -247,6 +248,12 @@ int jpeg_mmap(struct file *filp, struct vm_area_struct *vma)
size = vma->vm_end - vma->vm_start;
+ if (!cma_is_registered_region(jpeg_ctrl->mem.base, size)) {
+ pr_err("[%s] handling non-cma region (%#x@%#x)is prohibited\n",
+ __func__, (unsigned int)size, jpeg_ctrl->mem.base);
+ return -EINVAL;
+ }
+
vma->vm_flags |= VM_RESERVED | VM_IO;
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);