diff options
author | Andy Gross <andy.gross@ti.com> | 2011-09-22 14:00:56 -0500 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2011-09-23 16:38:19 -0700 |
commit | a4bac185d996b939224c06345ce77d1eb075374a (patch) | |
tree | bd180f34b81fefd6040797fb1b49ca95135a3db8 /drivers/media | |
parent | cbe4439d5b27f46b42f1e783209b0abae27b0149 (diff) | |
download | kernel_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.c | 6 |
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(¤t->mm->mmap_sem); + phys_addr = tiler_virt2phys(arg); + up_read(¤t->mm->mmap_sem); + return phys_addr; break; /* map block */ case TILIOC_MBLK: |