mirror of
https://github.com/torvalds/linux
synced 2024-10-23 03:37:40 +00:00
drm/vmwgfx: Allow dropped masters render-node like access on legacy nodes v2
Applications like gnome-shell may try to render after dropping master privileges. Since the driver should now be safe against this scenario, allow those applications to use their legacy node like a render node. v2: Add missing return statement. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com>
This commit is contained in:
parent
36d4e87b49
commit
aa3469ce7a
|
@ -1052,10 +1052,15 @@ static struct vmw_master *vmw_master_check(struct drm_device *dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if we were previously master, but now dropped.
|
* Check if we were previously master, but now dropped. In that
|
||||||
|
* case, allow at least render node functionality.
|
||||||
*/
|
*/
|
||||||
if (vmw_fp->locked_master) {
|
if (vmw_fp->locked_master) {
|
||||||
mutex_unlock(&dev->master_mutex);
|
mutex_unlock(&dev->master_mutex);
|
||||||
|
|
||||||
|
if (flags & DRM_RENDER_ALLOW)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
DRM_ERROR("Dropped master trying to access ioctl that "
|
DRM_ERROR("Dropped master trying to access ioctl that "
|
||||||
"requires authentication.\n");
|
"requires authentication.\n");
|
||||||
return ERR_PTR(-EACCES);
|
return ERR_PTR(-EACCES);
|
||||||
|
|
|
@ -911,6 +911,12 @@ vmw_surface_handle_reference(struct vmw_private *dev_priv,
|
||||||
"surface reference.\n");
|
"surface reference.\n");
|
||||||
return -EACCES;
|
return -EACCES;
|
||||||
}
|
}
|
||||||
|
if (ACCESS_ONCE(vmw_fpriv(file_priv)->locked_master)) {
|
||||||
|
DRM_ERROR("Locked master refused legacy "
|
||||||
|
"surface reference.\n");
|
||||||
|
return -EACCES;
|
||||||
|
}
|
||||||
|
|
||||||
handle = u_handle;
|
handle = u_handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue