diff options
author | Seung-Woo Kim <sw0312.kim@samsung.com> | 2013-07-03 04:09:21 -0400 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2013-07-04 02:55:37 -0400 |
commit | 4bb615c5fbb4f3ea0f197dfe4fb07a9e4ec2a755 (patch) | |
tree | a860ecdfcd14058bd2a22b62b0dd86c9db1c0ee5 | |
parent | 42ac99a72041a3515bd2b205adb9a239b49c6741 (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>
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_buf.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_g2d.c | 12 |
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 | 109 | err_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 | ||
399 | static dma_addr_t *g2d_userptr_get_dma_addr(struct drm_device *drm_dev, | 396 | static 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 | ||
544 | err_free_sgt: | 541 | err_free_sgt: |
545 | kfree(sgt); | 542 | kfree(sgt); |
546 | sgt = NULL; | ||
547 | 543 | ||
548 | err_free_userptr: | 544 | err_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 | ||
556 | err_free_pages: | 552 | err_free_pages: |
557 | drm_free_large(pages); | 553 | drm_free_large(pages); |
554 | |||
555 | err_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 | } |