aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSeung-Woo Kim <sw0312.kim@samsung.com>2013-07-03 04:09:21 -0400
committerInki Dae <inki.dae@samsung.com>2013-07-04 02:55:37 -0400
commit4bb615c5fbb4f3ea0f197dfe4fb07a9e4ec2a755 (patch)
treea860ecdfcd14058bd2a22b62b0dd86c9db1c0ee5 /drivers
parent42ac99a72041a3515bd2b205adb9a239b49c6741 (diff)
drm/exynos: remove duplicated error routine and unnecessary assign
There were duplicated error handling routines during allocating pages in lowlevel_buffer_allocate() and g2d_userptr_get_dma_addr(). Also unnecessary NULL assignments for variable used not any more are removed from g2d_userptr_get_dma_addr() and g2d_userptr_put_dma_addr(). Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_buf.c6
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_g2d.c12
2 files changed, 7 insertions, 11 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_buf.c b/drivers/gpu/drm/exynos/exynos_drm_buf.c
index 518b6d8e062b..b8ac06d92fbf 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_buf.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_buf.c
@@ -68,8 +68,8 @@ static int lowlevel_buffer_allocate(struct drm_device *dev,
68 &buf->dma_attrs); 68 &buf->dma_attrs);
69 if (!buf->kvaddr) { 69 if (!buf->kvaddr) {
70 DRM_ERROR("failed to allocate buffer.\n"); 70 DRM_ERROR("failed to allocate buffer.\n");
71 drm_free_large(buf->pages); 71 ret = -ENOMEM;
72 return -ENOMEM; 72 goto err_free;
73 } 73 }
74 74
75 start_addr = buf->dma_addr; 75 start_addr = buf->dma_addr;
@@ -106,7 +106,7 @@ err_free_attrs:
106 dma_free_attrs(dev->dev, buf->size, buf->pages, 106 dma_free_attrs(dev->dev, buf->size, buf->pages,
107 (dma_addr_t)buf->dma_addr, &buf->dma_attrs); 107 (dma_addr_t)buf->dma_addr, &buf->dma_attrs);
108 buf->dma_addr = (dma_addr_t)NULL; 108 buf->dma_addr = (dma_addr_t)NULL;
109 109err_free:
110 if (!is_drm_iommu_supported(dev)) 110 if (!is_drm_iommu_supported(dev))
111 drm_free_large(buf->pages); 111 drm_free_large(buf->pages);
112 112
diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
index fb19ee53ecbb..42a5a5466075 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
@@ -388,12 +388,9 @@ out:
388 388
389 sg_free_table(g2d_userptr->sgt); 389 sg_free_table(g2d_userptr->sgt);
390 kfree(g2d_userptr->sgt); 390 kfree(g2d_userptr->sgt);
391 g2d_userptr->sgt = NULL;
392 391
393 drm_free_large(g2d_userptr->pages); 392 drm_free_large(g2d_userptr->pages);
394 g2d_userptr->pages = NULL;
395 kfree(g2d_userptr); 393 kfree(g2d_userptr);
396 g2d_userptr = NULL;
397} 394}
398 395
399static dma_addr_t *g2d_userptr_get_dma_addr(struct drm_device *drm_dev, 396static dma_addr_t *g2d_userptr_get_dma_addr(struct drm_device *drm_dev,
@@ -466,8 +463,8 @@ static dma_addr_t *g2d_userptr_get_dma_addr(struct drm_device *drm_dev,
466 pages = drm_calloc_large(npages, sizeof(struct page *)); 463 pages = drm_calloc_large(npages, sizeof(struct page *));
467 if (!pages) { 464 if (!pages) {
468 DRM_ERROR("failed to allocate pages.\n"); 465 DRM_ERROR("failed to allocate pages.\n");
469 kfree(g2d_userptr); 466 ret = -ENOMEM;
470 return ERR_PTR(-ENOMEM); 467 goto err_free;
471 } 468 }
472 469
473 vma = find_vma(current->mm, userptr); 470 vma = find_vma(current->mm, userptr);
@@ -543,7 +540,6 @@ err_sg_free_table:
543 540
544err_free_sgt: 541err_free_sgt:
545 kfree(sgt); 542 kfree(sgt);
546 sgt = NULL;
547 543
548err_free_userptr: 544err_free_userptr:
549 exynos_gem_put_pages_to_userptr(g2d_userptr->pages, 545 exynos_gem_put_pages_to_userptr(g2d_userptr->pages,
@@ -555,9 +551,9 @@ err_put_vma:
555 551
556err_free_pages: 552err_free_pages:
557 drm_free_large(pages); 553 drm_free_large(pages);
554
555err_free:
558 kfree(g2d_userptr); 556 kfree(g2d_userptr);
559 pages = NULL;
560 g2d_userptr = NULL;
561 557
562 return ERR_PTR(ret); 558 return ERR_PTR(ret);
563} 559}