diff options
Diffstat (limited to 'patches.tizen/0556-drm-exynos-remove-duplicated-error-routine-and-unnec.patch')
-rw-r--r-- | patches.tizen/0556-drm-exynos-remove-duplicated-error-routine-and-unnec.patch | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/patches.tizen/0556-drm-exynos-remove-duplicated-error-routine-and-unnec.patch b/patches.tizen/0556-drm-exynos-remove-duplicated-error-routine-and-unnec.patch new file mode 100644 index 00000000000..297bb79767e --- /dev/null +++ b/patches.tizen/0556-drm-exynos-remove-duplicated-error-routine-and-unnec.patch @@ -0,0 +1,97 @@ +From 816e3e21edfcb47fa25fb8b09e0e2889737132c0 Mon Sep 17 00:00:00 2001 +From: Seung-Woo Kim <sw0312.kim@samsung.com> +Date: Wed, 3 Jul 2013 17:09:21 +0900 +Subject: [PATCH 0556/1302] 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> +Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> +--- + drivers/gpu/drm/exynos/exynos_drm_buf.c | 6 +++--- + 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 01c8e33..774bd48 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, + &buf->dma_attrs); + if (!buf->kvaddr) { + DRM_ERROR("failed to allocate buffer.\n"); +- drm_free_large(buf->pages); +- return -ENOMEM; ++ ret = -ENOMEM; ++ goto err_free; + } + + start_addr = buf->dma_addr; +@@ -106,7 +106,7 @@ err_free_attrs: + dma_free_attrs(dev->dev, buf->size, buf->pages, + (dma_addr_t)buf->dma_addr, &buf->dma_attrs); + buf->dma_addr = (dma_addr_t)NULL; +- ++err_free: + if (!is_drm_iommu_supported(dev)) + drm_free_large(buf->pages); + +diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c +index 8e8678d..ce28fc9 100644 +--- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c ++++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c +@@ -388,12 +388,9 @@ out: + + sg_free_table(g2d_userptr->sgt); + kfree(g2d_userptr->sgt); +- g2d_userptr->sgt = NULL; + + drm_free_large(g2d_userptr->pages); +- g2d_userptr->pages = NULL; + kfree(g2d_userptr); +- g2d_userptr = NULL; + } + + static dma_addr_t *g2d_userptr_get_dma_addr(struct drm_device *drm_dev, +@@ -464,8 +461,8 @@ static dma_addr_t *g2d_userptr_get_dma_addr(struct drm_device *drm_dev, + pages = drm_calloc_large(npages, sizeof(struct page *)); + if (!pages) { + DRM_ERROR("failed to allocate pages.\n"); +- kfree(g2d_userptr); +- return ERR_PTR(-ENOMEM); ++ ret = -ENOMEM; ++ goto err_free; + } + + vma = find_vma(current->mm, userptr); +@@ -540,7 +537,6 @@ err_sg_free_table: + + err_free_sgt: + kfree(sgt); +- sgt = NULL; + + err_free_userptr: + exynos_gem_put_pages_to_userptr(g2d_userptr->pages, +@@ -552,9 +548,9 @@ err_put_vma: + + err_free_pages: + drm_free_large(pages); ++ ++err_free: + kfree(g2d_userptr); +- pages = NULL; +- g2d_userptr = NULL; + + return ERR_PTR(ret); + } +-- +1.8.3.2 + |