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

Maaz Mombasawala (VMware maazm at fastmail.com
Thu Dec 1 22:46:48 UTC 2022


On 12/1/22 09: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;
>  	}

LGTM

-- 
Maaz Mombasawala (VMware) <maazm at fastmail.com>



More information about the dri-devel mailing list