drm/exynos: use drm_calloc_large when allocates pointer array
authorYoungJun Cho <yj44.cho@samsung.com>
Wed, 3 Jul 2013 08:09:19 +0000 (17:09 +0900)
committerInki Dae <inki.dae@samsung.com>
Thu, 4 Jul 2013 06:55:36 +0000 (15:55 +0900)
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>
drivers/gpu/drm/exynos/exynos_drm_buf.c
drivers/gpu/drm/exynos/exynos_drm_g2d.c

index 22865baa03b15fe49b8be3f0e6e3e7f545f910dc..245c9ae187a14351547ba21be4c5608b9ab80066 100644 (file)
@@ -57,8 +57,7 @@ static int lowlevel_buffer_allocate(struct drm_device *dev,
                dma_addr_t start_addr;
                unsigned int i = 0;
 
-               buf->pages = kzalloc(sizeof(struct page) * nr_pages,
-                                       GFP_KERNEL);
+               buf->pages = drm_calloc_large(nr_pages, sizeof(struct page));
                if (!buf->pages) {
                        DRM_ERROR("failed to allocate pages.\n");
                        return -ENOMEM;
@@ -69,7 +68,7 @@ static int lowlevel_buffer_allocate(struct drm_device *dev,
                                        &buf->dma_attrs);
                if (!buf->kvaddr) {
                        DRM_ERROR("failed to allocate buffer.\n");
-                       kfree(buf->pages);
+                       drm_free_large(buf->pages);
                        return -ENOMEM;
                }
 
@@ -109,7 +108,7 @@ err_free_attrs:
        buf->dma_addr = (dma_addr_t)NULL;
 
        if (!is_drm_iommu_supported(dev))
-               kfree(buf->pages);
+               drm_free_large(buf->pages);
 
        return ret;
 }
@@ -134,7 +133,7 @@ static void lowlevel_buffer_deallocate(struct drm_device *dev,
        if (!is_drm_iommu_supported(dev)) {
                dma_free_attrs(dev->dev, buf->size, buf->kvaddr,
                                (dma_addr_t)buf->dma_addr, &buf->dma_attrs);
-               kfree(buf->pages);
+               drm_free_large(buf->pages);
        } else
                dma_free_attrs(dev->dev, buf->size, buf->pages,
                                (dma_addr_t)buf->dma_addr, &buf->dma_attrs);
index af75434ee4d7993aacb9d6c3884f2177937f00f6..fb19ee53ecbb5099af18cddc17ef535005bc6318 100644 (file)
@@ -390,7 +390,7 @@ out:
        kfree(g2d_userptr->sgt);
        g2d_userptr->sgt = NULL;
 
-       kfree(g2d_userptr->pages);
+       drm_free_large(g2d_userptr->pages);
        g2d_userptr->pages = NULL;
        kfree(g2d_userptr);
        g2d_userptr = NULL;
@@ -463,7 +463,7 @@ static dma_addr_t *g2d_userptr_get_dma_addr(struct drm_device *drm_dev,
        npages = (end - start) >> PAGE_SHIFT;
        g2d_userptr->npages = npages;
 
-       pages = kzalloc(npages * sizeof(struct page *), GFP_KERNEL);
+       pages = drm_calloc_large(npages, sizeof(struct page *));
        if (!pages) {
                DRM_ERROR("failed to allocate pages.\n");
                kfree(g2d_userptr);
@@ -554,7 +554,7 @@ err_put_vma:
        exynos_gem_put_vma(g2d_userptr->vma);
 
 err_free_pages:
-       kfree(pages);
+       drm_free_large(pages);
        kfree(g2d_userptr);
        pages = NULL;
        g2d_userptr = NULL;