On 08/27/2015 02:55 PM, Thomas Hellstrom wrote:
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.
Signed-off-by: Thomas Hellstrom thellstrom@vmware.com Reviewed-by: Sinclair Yeh syeh@vmware.com
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 7 ++++++- drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index 03854d6..e13b20b 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -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
*/ if (vmw_fp->locked_master) { mutex_unlock(&dev->master_mutex);* case, allow at least render node functionality.
if (flags & DRM_RENDER_ALLOW)
return NULL;
- DRM_ERROR("Dropped master trying to access ioctl that " "requires authentication.\n"); return ERR_PTR(-EACCES);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c index 5b8595b..4f0794d 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c @@ -911,6 +911,11 @@ vmw_surface_handle_reference(struct vmw_private *dev_priv, "surface reference.\n"); return -EACCES; }
if (ACCESS_ONCE(vmw_fpriv(file_priv)->locked_master)) {
DRM_ERROR("Locked master refused legacy "
"surface reference.\n");
Actually, a return -EACCES is missing here. I'll send out a v2.
/Thomas