diff options
Diffstat (limited to 'drivers/gpu/drm/drm_fops.c')
-rw-r--r-- | drivers/gpu/drm/drm_fops.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c index f52663ebe016..09a3571c9908 100644 --- a/drivers/gpu/drm/drm_fops.c +++ b/drivers/gpu/drm/drm_fops.c | |||
@@ -274,6 +274,7 @@ static int drm_open_helper(struct inode *inode, struct file *filp, | |||
274 | /* create a new master */ | 274 | /* create a new master */ |
275 | priv->minor->master = drm_master_create(priv->minor); | 275 | priv->minor->master = drm_master_create(priv->minor); |
276 | if (!priv->minor->master) { | 276 | if (!priv->minor->master) { |
277 | mutex_unlock(&dev->struct_mutex); | ||
277 | ret = -ENOMEM; | 278 | ret = -ENOMEM; |
278 | goto out_free; | 279 | goto out_free; |
279 | } | 280 | } |
@@ -337,14 +338,10 @@ int drm_fasync(int fd, struct file *filp, int on) | |||
337 | { | 338 | { |
338 | struct drm_file *priv = filp->private_data; | 339 | struct drm_file *priv = filp->private_data; |
339 | struct drm_device *dev = priv->minor->dev; | 340 | struct drm_device *dev = priv->minor->dev; |
340 | int retcode; | ||
341 | 341 | ||
342 | DRM_DEBUG("fd = %d, device = 0x%lx\n", fd, | 342 | DRM_DEBUG("fd = %d, device = 0x%lx\n", fd, |
343 | (long)old_encode_dev(priv->minor->device)); | 343 | (long)old_encode_dev(priv->minor->device)); |
344 | retcode = fasync_helper(fd, filp, on, &dev->buf_async); | 344 | return fasync_helper(fd, filp, on, &dev->buf_async); |
345 | if (retcode < 0) | ||
346 | return retcode; | ||
347 | return 0; | ||
348 | } | 345 | } |
349 | EXPORT_SYMBOL(drm_fasync); | 346 | EXPORT_SYMBOL(drm_fasync); |
350 | 347 | ||