diff options
author | YoungJun Cho <yj44.cho@samsung.com> | 2013-07-03 04:09:19 -0400 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2013-07-04 02:55:36 -0400 |
commit | af51a5e7068826fe5016ab38149243bacc449233 (patch) | |
tree | b387c89a69f668218497bc3500cbaa19cfe30120 | |
parent | ba3706c0f19ab77593b8b3be6649746ac56905d3 (diff) |
drm/exynos: use drm_calloc_large when allocates pointer array
If the type of object is pointer array, the drm_calloc_large() is
more suitable than kzalloc() for its allocation function. And uses
drm_free_large() instead of kfree() also.
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@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 | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_g2d.c | 6 |
2 files changed, 7 insertions, 8 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_buf.c b/drivers/gpu/drm/exynos/exynos_drm_buf.c index 22865baa03b1..245c9ae187a1 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_buf.c +++ b/drivers/gpu/drm/exynos/exynos_drm_buf.c | |||
@@ -57,8 +57,7 @@ static int lowlevel_buffer_allocate(struct drm_device *dev, | |||
57 | dma_addr_t start_addr; | 57 | dma_addr_t start_addr; |
58 | unsigned int i = 0; | 58 | unsigned int i = 0; |
59 | 59 | ||
60 | buf->pages = kzalloc(sizeof(struct page) * nr_pages, | 60 | buf->pages = drm_calloc_large(nr_pages, sizeof(struct page)); |
61 | GFP_KERNEL); | ||
62 | if (!buf->pages) { | 61 | if (!buf->pages) { |
63 | DRM_ERROR("failed to allocate pages.\n"); | 62 | DRM_ERROR("failed to allocate pages.\n"); |
64 | return -ENOMEM; | 63 | return -ENOMEM; |
@@ -69,7 +68,7 @@ static int lowlevel_buffer_allocate(struct drm_device *dev, | |||
69 | &buf->dma_attrs); | 68 | &buf->dma_attrs); |
70 | if (!buf->kvaddr) { | 69 | if (!buf->kvaddr) { |
71 | DRM_ERROR("failed to allocate buffer.\n"); | 70 | DRM_ERROR("failed to allocate buffer.\n"); |
72 | kfree(buf->pages); | 71 | drm_free_large(buf->pages); |
73 | return -ENOMEM; | 72 | return -ENOMEM; |
74 | } | 73 | } |
75 | 74 | ||
@@ -109,7 +108,7 @@ err_free_attrs: | |||
109 | buf->dma_addr = (dma_addr_t)NULL; | 108 | buf->dma_addr = (dma_addr_t)NULL; |
110 | 109 | ||
111 | if (!is_drm_iommu_supported(dev)) | 110 | if (!is_drm_iommu_supported(dev)) |
112 | kfree(buf->pages); | 111 | drm_free_large(buf->pages); |
113 | 112 | ||
114 | return ret; | 113 | return ret; |
115 | } | 114 | } |
@@ -134,7 +133,7 @@ static void lowlevel_buffer_deallocate(struct drm_device *dev, | |||
134 | if (!is_drm_iommu_supported(dev)) { | 133 | if (!is_drm_iommu_supported(dev)) { |
135 | dma_free_attrs(dev->dev, buf->size, buf->kvaddr, | 134 | dma_free_attrs(dev->dev, buf->size, buf->kvaddr, |
136 | (dma_addr_t)buf->dma_addr, &buf->dma_attrs); | 135 | (dma_addr_t)buf->dma_addr, &buf->dma_attrs); |
137 | kfree(buf->pages); | 136 | drm_free_large(buf->pages); |
138 | } else | 137 | } else |
139 | dma_free_attrs(dev->dev, buf->size, buf->pages, | 138 | dma_free_attrs(dev->dev, buf->size, buf->pages, |
140 | (dma_addr_t)buf->dma_addr, &buf->dma_attrs); | 139 | (dma_addr_t)buf->dma_addr, &buf->dma_attrs); |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c index af75434ee4d7..fb19ee53ecbb 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c +++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c | |||
@@ -390,7 +390,7 @@ out: | |||
390 | kfree(g2d_userptr->sgt); | 390 | kfree(g2d_userptr->sgt); |
391 | g2d_userptr->sgt = NULL; | 391 | g2d_userptr->sgt = NULL; |
392 | 392 | ||
393 | kfree(g2d_userptr->pages); | 393 | drm_free_large(g2d_userptr->pages); |
394 | g2d_userptr->pages = NULL; | 394 | g2d_userptr->pages = NULL; |
395 | kfree(g2d_userptr); | 395 | kfree(g2d_userptr); |
396 | g2d_userptr = NULL; | 396 | g2d_userptr = NULL; |
@@ -463,7 +463,7 @@ static dma_addr_t *g2d_userptr_get_dma_addr(struct drm_device *drm_dev, | |||
463 | npages = (end - start) >> PAGE_SHIFT; | 463 | npages = (end - start) >> PAGE_SHIFT; |
464 | g2d_userptr->npages = npages; | 464 | g2d_userptr->npages = npages; |
465 | 465 | ||
466 | pages = kzalloc(npages * sizeof(struct page *), GFP_KERNEL); | 466 | pages = drm_calloc_large(npages, sizeof(struct page *)); |
467 | if (!pages) { | 467 | if (!pages) { |
468 | DRM_ERROR("failed to allocate pages.\n"); | 468 | DRM_ERROR("failed to allocate pages.\n"); |
469 | kfree(g2d_userptr); | 469 | kfree(g2d_userptr); |
@@ -554,7 +554,7 @@ err_put_vma: | |||
554 | exynos_gem_put_vma(g2d_userptr->vma); | 554 | exynos_gem_put_vma(g2d_userptr->vma); |
555 | 555 | ||
556 | err_free_pages: | 556 | err_free_pages: |
557 | kfree(pages); | 557 | drm_free_large(pages); |
558 | kfree(g2d_userptr); | 558 | kfree(g2d_userptr); |
559 | pages = NULL; | 559 | pages = NULL; |
560 | g2d_userptr = NULL; | 560 | g2d_userptr = NULL; |