aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorYoungJun Cho <yj44.cho@samsung.com>2013-03-11 06:48:05 -0400
committerInki Dae <inki.dae@samsung.com>2013-03-20 06:09:10 -0400
commit067ed3311f7961bef67551fa5115dbadf9a035f4 (patch)
tree6f174f9ccc484359db40c7c2806fd55b13e29278 /drivers/gpu
parente2779e1698c7dbf36a02a9922d216b4db0e212b8 (diff)
drm/exynos: Fix error routine to getting dma addr.
This patch fixes error routine when g2d_userptr_get_dma_add is failed. When sg_alloc_table_from_pages() is failed, it doesn't call sg_free_table() anymore. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_g2d.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
index 3b0da0378acf..28b71125189b 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
@@ -450,7 +450,7 @@ static dma_addr_t *g2d_userptr_get_dma_addr(struct drm_device *drm_dev,
450 DMA_BIDIRECTIONAL); 450 DMA_BIDIRECTIONAL);
451 if (ret < 0) { 451 if (ret < 0) {
452 DRM_ERROR("failed to map sgt with dma region.\n"); 452 DRM_ERROR("failed to map sgt with dma region.\n");
453 goto err_free_sgt; 453 goto err_sg_free_table;
454 } 454 }
455 455
456 g2d_userptr->dma_addr = sgt->sgl[0].dma_address; 456 g2d_userptr->dma_addr = sgt->sgl[0].dma_address;
@@ -467,8 +467,10 @@ static dma_addr_t *g2d_userptr_get_dma_addr(struct drm_device *drm_dev,
467 467
468 return &g2d_userptr->dma_addr; 468 return &g2d_userptr->dma_addr;
469 469
470err_free_sgt: 470err_sg_free_table:
471 sg_free_table(sgt); 471 sg_free_table(sgt);
472
473err_free_sgt:
472 kfree(sgt); 474 kfree(sgt);
473 sgt = NULL; 475 sgt = NULL;
474 476