diff options
| -rw-r--r-- | drivers/gpu/drm/drm_fops.c | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/drm_info.c | 5 | ||||
| -rw-r--r-- | drivers/gpu/drm/drm_ioctl.c | 4 | ||||
| -rw-r--r-- | include/drm/drmP.h | 4 | ||||
| -rw-r--r-- | init/Kconfig | 1 | 
5 files changed, 9 insertions, 8 deletions
diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c index 5062eec673f..433d2fad1fe 100644 --- a/drivers/gpu/drm/drm_fops.c +++ b/drivers/gpu/drm/drm_fops.c @@ -251,7 +251,7 @@ static int drm_open_helper(struct inode *inode, struct file *filp,  	filp->private_data = priv;  	priv->filp = filp;  	priv->uid = current_euid(); -	priv->pid = task_pid_nr(current); +	priv->pid = get_pid(task_pid(current));  	priv->minor = idr_find(&drm_minors_idr, minor_id);  	priv->ioctl_count = 0;  	/* for compatibility root is always authenticated */ @@ -524,6 +524,7 @@ int drm_release(struct inode *inode, struct file *filp)  	if (drm_core_check_feature(dev, DRIVER_PRIME))  		drm_prime_destroy_file_private(&file_priv->prime); +	put_pid(file_priv->pid);  	kfree(file_priv);  	/* ======================================================== diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c index 8928edbb94c..eb0af393e6e 100644 --- a/drivers/gpu/drm/drm_info.c +++ b/drivers/gpu/drm/drm_info.c @@ -191,8 +191,9 @@ int drm_clients_info(struct seq_file *m, void *data)  		seq_printf(m, "%c %3d %5d %5d %10u %10lu\n",  			   priv->authenticated ? 'y' : 'n',  			   priv->minor->index, -			   priv->pid, -			   priv->uid, priv->magic, priv->ioctl_count); +			   pid_vnr(priv->pid), +			   from_kuid_munged(seq_user_ns(m), priv->uid), +			   priv->magic, priv->ioctl_count);  	}  	mutex_unlock(&dev->struct_mutex);  	return 0; diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c index 64a62c69731..39a43834cef 100644 --- a/drivers/gpu/drm/drm_ioctl.c +++ b/drivers/gpu/drm/drm_ioctl.c @@ -215,8 +215,8 @@ int drm_getclient(struct drm_device *dev, void *data,  	list_for_each_entry(pt, &dev->filelist, lhead) {  		if (i++ >= idx) {  			client->auth = pt->authenticated; -			client->pid = pt->pid; -			client->uid = pt->uid; +			client->pid = pid_vnr(pt->pid); +			client->uid = from_kuid_munged(current_user_ns(), pt->uid);  			client->magic = pt->magic;  			client->iocs = pt->ioctl_count;  			mutex_unlock(&dev->struct_mutex); diff --git a/include/drm/drmP.h b/include/drm/drmP.h index d6b67bb9075..9bc5c6a1d52 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -426,8 +426,8 @@ struct drm_prime_file_private {  /** File private data */  struct drm_file {  	int authenticated; -	pid_t pid; -	uid_t uid; +	struct pid *pid; +	kuid_t uid;  	drm_magic_t magic;  	unsigned long ioctl_count;  	struct list_head lhead; diff --git a/init/Kconfig b/init/Kconfig index d09738dee23..6db6e751c5f 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -936,7 +936,6 @@ config UIDGID_CONVERTED  	depends on QUOTA = n  	depends on QUOTACTL = n  	depends on BSD_PROCESS_ACCT = n -	depends on DRM = n  	# Networking  	depends on NET_9P = n  |