aboutsummaryrefslogtreecommitdiff
path: root/linux-core/drm_fops.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2008-03-27 15:55:49 +1000
committerDave Airlie <airlied@redhat.com>2008-03-27 15:55:49 +1000
commitacb6c9ef97df999f3fa87639b1bb4f2840970f71 (patch)
treee8d9c956760ae172a82ca62071e8c4e09f515eca /linux-core/drm_fops.c
parent71b66b00435a10e762a4bb7abedb263196942da4 (diff)
drm: remove authentication on master exit.
using contexts for this is bad for multiple masters
Diffstat (limited to 'linux-core/drm_fops.c')
-rw-r--r--linux-core/drm_fops.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/linux-core/drm_fops.c b/linux-core/drm_fops.c
index d5c59b19..043552fd 100644
--- a/linux-core/drm_fops.c
+++ b/linux-core/drm_fops.c
@@ -489,6 +489,13 @@ int drm_release(struct inode *inode, struct file *filp)
drm_fb_release(filp);
if (file_priv->is_master) {
+ struct drm_file *temp;
+ list_for_each_entry(temp, &dev->filelist, lhead) {
+ if ((temp->master == file_priv->master) &&
+ (temp != file_priv))
+ temp->authenticated = 0;
+ }
+
if (file_priv->minor->master == file_priv->master)
file_priv->minor->master = NULL;
drm_put_master(file_priv->master);
@@ -499,15 +506,9 @@ int drm_release(struct inode *inode, struct file *filp)
mutex_lock(&dev->struct_mutex);
drm_object_release(filp);
- if (file_priv->remove_auth_on_close == 1) {
- struct drm_file *temp;
- list_for_each_entry(temp, &dev->filelist, lhead)
- temp->authenticated = 0;
- }
list_del(&file_priv->lhead);
-
mutex_unlock(&dev->struct_mutex);
if (dev->driver->postclose)