The function check_gem_flags is too simple, so it's better to move codes
in each consumer functions.

Signed-off-by: Joonyoung Shim <jy0922.shim at samsung.com>
---
 drivers/gpu/drm/exynos/exynos_drm_gem.c | 24 ++++++++----------------
 1 file changed, 8 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c 
b/drivers/gpu/drm/exynos/exynos_drm_gem.c
index ab7d029..03e85d8 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gem.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c
@@ -20,16 +20,6 @@
 #include "exynos_drm_buf.h"
 #include "exynos_drm_iommu.h"

-static int check_gem_flags(unsigned int flags)
-{
-       if (flags & ~(EXYNOS_BO_MASK)) {
-               DRM_ERROR("invalid flags.\n");
-               return -EINVAL;
-       }
-
-       return 0;
-}
-
 static void update_vm_cache_attr(struct exynos_drm_gem_obj *obj,
                                        struct vm_area_struct *vma)
 {
@@ -169,6 +159,11 @@ struct exynos_drm_gem_obj *exynos_drm_gem_create(struct 
drm_device *dev,
        struct exynos_drm_gem_buf *buf;
        int ret;

+       if (flags & ~(EXYNOS_BO_MASK)) {
+               DRM_ERROR("invalid flags.\n");
+               return ERR_PTR(-EINVAL);
+       }
+
        if (!size) {
                DRM_ERROR("invalid size.\n");
                return ERR_PTR(-EINVAL);
@@ -176,10 +171,6 @@ struct exynos_drm_gem_obj *exynos_drm_gem_create(struct 
drm_device *dev,

        size = roundup_gem_size(size, flags);

-       ret = check_gem_flags(flags);
-       if (ret)
-               return ERR_PTR(ret);
-
        buf = exynos_drm_init_buf(dev, size);
        if (!buf)
                return ERR_PTR(-ENOMEM);
@@ -584,9 +575,10 @@ int exynos_drm_gem_mmap(struct file *filp, struct 
vm_area_struct *vma)
        obj = vma->vm_private_data;
        exynos_gem_obj = to_exynos_gem_obj(obj);

-       ret = check_gem_flags(exynos_gem_obj->flags);
-       if (ret)
+       if (exynos_gem_obj->flags & ~(EXYNOS_BO_MASK)) {
+               DRM_ERROR("invalid flags.\n");
                goto err_close_vm;
+       }

        update_vm_cache_attr(exynos_gem_obj, vma);

-- 
1.9.1

Reply via email to