[PATCH v2 1/2] drm/vmwgfx: add local DRM_AUTH check for PRIME TO/FROM HANDLE
Deepak Singh Rawat
drawat at vmware.com
Mon Aug 5 15:37:22 UTC 2019
Hi Emil,
Thanks for doing this. Looks good to me. By the way I think Thomas had
a patch to get rid of legacy locking mechanism. I don't know when it
will go upstream. With that we no need for the below check.
Reviewed-by: Deepak Rawat <drawat at vmware.com>
On Fri, 2019-08-02 at 18:01 +0100, Emil Velikov wrote:
> From: Emil Velikov <emil.velikov at collabora.com>
>
> Realistically no drivers, but vmwgfx care about the DRM_AUTH flag
> here.
>
> Follow-up work in this driver will properly isolate primary clients
> from
> different master realms, thus we'll no longer need to parse _any_
> ioctl
> flags.
>
> Until that work lands, add a local workaround.
>
> v2: Use bitwise or (Deepak)
>
> Cc: VMware Graphics <linux-graphics-maintainer at vmware.com>
> Cc: Thomas Hellstrom <thellstrom at vmware.com>
> Cc: Deepak Singh Rawat <drawat at vmware.com>
> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
> ---
> I'd like to merge this and the next patch hrough the drm-misc tree.
> Ack
> and rb are appreciated.
>
> Thanks
> Emil
> ---
> drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> index cd0d49d8a8da..53afb1d597e8 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> @@ -1134,6 +1134,15 @@ static long vmw_generic_ioctl(struct file
> *filp, unsigned int cmd,
> } else if (!drm_ioctl_flags(nr, &flags))
> return -EINVAL;
>
> + /*
> + * Little workaround until the vmwgfx patches providing
> isolation of
> + * primary clients from different master realms land.
> + * With that work, we'll no longer need to parse _any_ ioctl
> flags.
> + */
> + if (nr == 0x2d /* DRM_IOCTL_PRIME_HANDLE_TO_FD */ ||
> + nr == 0x2e /* DRM_IOCTL_PRIME_FD_TO_HANDLE */)
> + flags |= DRM_AUTH;
> +
> vmaster = vmw_master_check(dev, file_priv, flags);
> if (IS_ERR(vmaster)) {
> ret = PTR_ERR(vmaster);
More information about the dri-devel
mailing list