summaryrefslogtreecommitdiff
path: root/patches.tizen/0556-drm-exynos-remove-duplicated-error-routine-and-unnec.patch
diff options
context:
space:
mode:
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.patch97
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
+