]> Git Repo - linux.git/commitdiff
drm/exynos: create a fake mmap offset with gem creation
authorJoonyoung Shim <[email protected]>
Tue, 28 Jul 2015 08:53:23 +0000 (17:53 +0900)
committerInki Dae <[email protected]>
Wed, 30 Sep 2015 07:39:41 +0000 (16:39 +0900)
Don't create a fake mmap offset in exynos_drm_gem_dumb_map_offset. If
not, it will call drm_gem_create_mmap_offset whenever user requests
DRM_IOCTL_MODE_MAP_DUMB ioctl.

Signed-off-by: Joonyoung Shim <[email protected]>
Signed-off-by: Inki Dae <[email protected]>
drivers/gpu/drm/exynos/exynos_drm_gem.c

index 5c94863a4ca640ac77732b64cb2e502ff32a5e99..048ad13e5d824df927b44c18b5afac5d7861be9f 100644 (file)
@@ -199,6 +199,13 @@ static struct exynos_drm_gem_obj *exynos_drm_gem_init(struct drm_device *dev,
                return ERR_PTR(ret);
        }
 
+       ret = drm_gem_create_mmap_offset(obj);
+       if (ret < 0) {
+               drm_gem_object_release(obj);
+               kfree(exynos_gem_obj);
+               return ERR_PTR(ret);
+       }
+
        DRM_DEBUG_KMS("created file object = 0x%x\n", (unsigned int)obj->filp);
 
        return exynos_gem_obj;
@@ -445,14 +452,9 @@ int exynos_drm_gem_dumb_map_offset(struct drm_file *file_priv,
                goto unlock;
        }
 
-       ret = drm_gem_create_mmap_offset(obj);
-       if (ret)
-               goto out;
-
        *offset = drm_vma_node_offset_addr(&obj->vma_node);
        DRM_DEBUG_KMS("offset = 0x%lx\n", (unsigned long)*offset);
 
-out:
        drm_gem_object_unreference(obj);
 unlock:
        mutex_unlock(&dev->struct_mutex);
This page took 0.049495 seconds and 4 git commands to generate.