Hi Joonyoung,
On 28 July 2015 at 09:53, Joonyoung Shim jy0922.shim@samsung.com wrote:
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;
}
This check should be removed, or turned into a WARN_ON: there is no way for the user to control the GEM object flags except through the create ioctl, no?
Cheers, Daniel