On 2015년 07월 28일 17:53, Joonyoung Shim wrote: > 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@xxxxxxxxxxx> > --- > 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; > + } I will remove above checking as Daniel Stone commented because user space cannot control the flag. Thanks, Inki Dae > > update_vm_cache_attr(exynos_gem_obj, vma); > > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel