drm: Make control nodes master-less v3
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / gpu / drm / drm_fops.c
index 1ec4498..5020998 100644 (file)
@@ -241,7 +241,8 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
        /* if there is no current master make this fd it, but do not create
         * any master object for render clients */
        mutex_lock(&dev->struct_mutex);
-       if (!priv->minor->master && !drm_is_render_client(priv)) {
+       if (!priv->minor->master && !drm_is_render_client(priv) &&
+           !drm_is_control_client(priv)) {
                /* create a new master */
                priv->minor->master = drm_master_create(priv->minor);
                if (!priv->minor->master) {
@@ -279,7 +280,8 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
                                goto out_close;
                        }
                }
-       } else if (!drm_is_render_client(priv)) {
+       } else if (!drm_is_render_client(priv) &&
+                  !drm_is_control_client(priv)) {
                /* get a reference to the master */
                priv->master = drm_master_get(priv->minor->master);
        }