On 12/1/22 09:53, Zack Rusin wrote:
> From: Zack Rusin <za...@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: <sta...@vger.kernel.org> # v5.7+
> Signed-off-by: Zack Rusin <za...@vmware.com>
> Reported-by: Nicholas Hunt <nh...@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) <ma...@fastmail.com>

Reply via email to