diff options
author | Dave Airlie <airlied@redhat.com> | 2008-03-27 15:55:49 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2008-03-27 15:55:49 +1000 |
commit | acb6c9ef97df999f3fa87639b1bb4f2840970f71 (patch) | |
tree | e8d9c956760ae172a82ca62071e8c4e09f515eca /linux-core/drm_fops.c | |
parent | 71b66b00435a10e762a4bb7abedb263196942da4 (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.c | 13 |
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) |