diff options
Diffstat (limited to 'drivers/gpu/drm/drm_fops.c')
-rw-r--r-- | drivers/gpu/drm/drm_fops.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c index 9b02f126fb0d..5432a1a61c15 100644 --- a/drivers/gpu/drm/drm_fops.c +++ b/drivers/gpu/drm/drm_fops.c | |||
@@ -232,7 +232,8 @@ static int drm_open_helper(struct inode *inode, struct file *filp, | |||
232 | /* if there is no current master make this fd it, but do not create | 232 | /* if there is no current master make this fd it, but do not create |
233 | * any master object for render clients */ | 233 | * any master object for render clients */ |
234 | mutex_lock(&dev->struct_mutex); | 234 | mutex_lock(&dev->struct_mutex); |
235 | if (!priv->minor->master && !drm_is_render_client(priv)) { | 235 | if (!priv->minor->master && !drm_is_render_client(priv) && |
236 | !drm_is_control_client(priv)) { | ||
236 | /* create a new master */ | 237 | /* create a new master */ |
237 | priv->minor->master = drm_master_create(priv->minor); | 238 | priv->minor->master = drm_master_create(priv->minor); |
238 | if (!priv->minor->master) { | 239 | if (!priv->minor->master) { |
@@ -270,7 +271,8 @@ static int drm_open_helper(struct inode *inode, struct file *filp, | |||
270 | goto out_close; | 271 | goto out_close; |
271 | } | 272 | } |
272 | } | 273 | } |
273 | } else if (!drm_is_render_client(priv)) { | 274 | } else if (!drm_is_render_client(priv) && |
275 | !drm_is_control_client(priv)) { | ||
274 | /* get a reference to the master */ | 276 | /* get a reference to the master */ |
275 | priv->master = drm_master_get(priv->minor->master); | 277 | priv->master = drm_master_get(priv->minor->master); |
276 | } | 278 | } |