浏览代码

[media] exynos4-is: Free FIMC-IS CPU memory only when allocated

Ensure dma_free_coherent() is not called with incorrect arguments
and only when the memory was actually allocated. This will prevent
possible crashes on error paths of the top level media device driver,
when fimc-is device gets unregistered and its driver detached.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: stable@vger.kernel.org # for v3.15
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Sylwester Nawrocki 11 年之前
父节点
当前提交
404a90abc6
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      drivers/media/platform/exynos4-is/fimc-is.c

+ 3 - 0
drivers/media/platform/exynos4-is/fimc-is.c

@@ -367,6 +367,9 @@ static void fimc_is_free_cpu_memory(struct fimc_is *is)
 {
 {
 	struct device *dev = &is->pdev->dev;
 	struct device *dev = &is->pdev->dev;
 
 
+	if (is->memory.vaddr == NULL)
+		return;
+
 	dma_free_coherent(dev, is->memory.size, is->memory.vaddr,
 	dma_free_coherent(dev, is->memory.size, is->memory.vaddr,
 			  is->memory.paddr);
 			  is->memory.paddr);
 }
 }