aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorAndy Gross <andy.gross@ti.com>2011-09-22 14:00:56 -0500
committerIliyan Malchev <malchev@google.com>2011-09-23 16:38:19 -0700
commita4bac185d996b939224c06345ce77d1eb075374a (patch)
treebd180f34b81fefd6040797fb1b49ca95135a3db8 /drivers/media
parentcbe4439d5b27f46b42f1e783209b0abae27b0149 (diff)
downloadkernel_samsung_tuna-a4bac185d996b939224c06345ce77d1eb075374a.zip
kernel_samsung_tuna-a4bac185d996b939224c06345ce77d1eb075374a.tar.gz
kernel_samsung_tuna-a4bac185d996b939224c06345ce77d1eb075374a.tar.bz2
OMAP: TILER: virt2phys requires taking mm semaphore
Get read lock on mm semaphore before doing virt2phys operation Change-Id: I2aa49fd3c392d993b7dbf9083eb461873fc44d1f Signed-off-by: Andy Gross <andy.gross@ti.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/tiler/tiler-ioctl.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/media/video/tiler/tiler-ioctl.c b/drivers/media/video/tiler/tiler-ioctl.c
index d90764a..b54c39f 100644
--- a/drivers/media/video/tiler/tiler-ioctl.c
+++ b/drivers/media/video/tiler/tiler-ioctl.c
@@ -235,6 +235,7 @@ static long tiler_ioctl(struct file *filp, u32 cmd, unsigned long arg)
struct tiler_buf_info buf_info = {0};
struct tiler_block_info block_info = {0};
struct mem_info *mi;
+ u32 phys_addr;
switch (cmd) {
/* allocate block */
@@ -289,7 +290,10 @@ static long tiler_ioctl(struct file *filp, u32 cmd, unsigned long arg)
break;
/* get physical address */
case TILIOC_GSSP:
- return tiler_virt2phys(arg);
+ down_read(&current->mm->mmap_sem);
+ phys_addr = tiler_virt2phys(arg);
+ up_read(&current->mm->mmap_sem);
+ return phys_addr;
break;
/* map block */
case TILIOC_MBLK: