diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2010-05-10 11:59:37 +0200 | 
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2010-05-10 14:20:42 +0200 | 
| commit | dbb6be6d5e974c42bbecd183effaa0df69e1dd8b (patch) | |
| tree | 5735cb47e70853d057a9881dd0ce44b83e88fa63 /drivers/gpu/drm/drm_fops.c | |
| parent | 6a867a395558a7f882d041783e4cdea6744ca2bf (diff) | |
| parent | b57f95a38233a2e73b679bea4a5453a1cc2a1cc9 (diff) | |
| download | olio-linux-3.10-dbb6be6d5e974c42bbecd183effaa0df69e1dd8b.tar.xz olio-linux-3.10-dbb6be6d5e974c42bbecd183effaa0df69e1dd8b.zip  | |
Merge branch 'linus' into timers/core
Reason: Further posix_cpu_timer patches depend on mainline changes
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/gpu/drm/drm_fops.c')
| -rw-r--r-- | drivers/gpu/drm/drm_fops.c | 17 | 
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c index 08d14df3bb4..9d532d7fdf5 100644 --- a/drivers/gpu/drm/drm_fops.c +++ b/drivers/gpu/drm/drm_fops.c @@ -36,6 +36,7 @@  #include "drmP.h"  #include <linux/poll.h> +#include <linux/slab.h>  #include <linux/smp_lock.h>  static int drm_open_helper(struct inode *inode, struct file *filp, @@ -140,14 +141,16 @@ int drm_open(struct inode *inode, struct file *filp)  		spin_unlock(&dev->count_lock);  	}  out: -	mutex_lock(&dev->struct_mutex); -	if (minor->type == DRM_MINOR_LEGACY) { -		BUG_ON((dev->dev_mapping != NULL) && -			(dev->dev_mapping != inode->i_mapping)); -		if (dev->dev_mapping == NULL) -			dev->dev_mapping = inode->i_mapping; +	if (!retcode) { +		mutex_lock(&dev->struct_mutex); +		if (minor->type == DRM_MINOR_LEGACY) { +			if (dev->dev_mapping == NULL) +				dev->dev_mapping = inode->i_mapping; +			else if (dev->dev_mapping != inode->i_mapping) +				retcode = -ENODEV; +		} +		mutex_unlock(&dev->struct_mutex);  	} -	mutex_unlock(&dev->struct_mutex);  	return retcode;  }  |