[PATCH] drm/vmwgfx: Don't use screen objects when SEV is active

Martin Krastev (VMware) martinkrastev768 at gmail.com
Thu Dec 1 19:05:12 UTC 2022


From: Martin Krastev <krastevm at vmware.com>


LGTM!


Reviewed-by: Martin Krastev <krastevm at vmware.com>


Regards,

Martin


On 1.12.22 г. 19:53 ч., Zack Rusin wrote:
> From: Zack Rusin <zackr at vmware.com>
>
> When SEV is enabled gmr's and mob's are explicitly disabled because
> the encrypted system memory can not be used by the hypervisor.
>
> The driver was disabling GMR's but the presentation code, which depends
> on GMR's, wasn't honoring it which lead to black screen on hosts
> with SEV enabled.
>
> Make sure screen objects presentation is not used when guest memory
> regions have been disabled to fix presentation on SEV enabled hosts.
>
> Fixes: 3b0d6458c705 ("drm/vmwgfx: Refuse DMA operation when SEV encryption is active")
> Cc: <stable at vger.kernel.org> # v5.7+
> Signed-off-by: Zack Rusin <zackr at vmware.com>
> Reported-by: Nicholas Hunt <nhunt at vmware.com>
> ---
>   drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
> index 8db61c541a80..e1f36a09c59c 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
> @@ -926,6 +926,10 @@ int vmw_kms_sou_init_display(struct vmw_private *dev_priv)
>   	struct drm_device *dev = &dev_priv->drm;
>   	int i;
>   
> +	/* Screen objects won't work if GMR's aren't available */
> +	if (!dev_priv->has_gmr)
> +		return -ENOSYS;
> +
>   	if (!(dev_priv->capabilities & SVGA_CAP_SCREEN_OBJECT_2)) {
>   		return -ENOSYS;
>   	}


More information about the dri-devel mailing list