On 3/2/26 12:03 PM, Ian Forbes wrote:
> We were overwriting the surface's dirty tracker here causing a memory leak.
> 
> Reported-by: Mika Penttilä <[email protected]>
> Closes: 
> https://lore.kernel.org/dri-devel/[email protected]/
> Fixes: 965544150d1c ("drm/vmwgfx: Refactor cursor handling")
> Signed-off-by: Ian Forbes <[email protected]>
> ---
>  drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c 
> b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> index 55730e29d3ae..e7bddf840a79 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> @@ -771,7 +771,8 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct 
> drm_device *dev,
>               ret = vmw_bo_dirty_add(bo);
>               if (!ret && surface && surface->res.func->dirty_alloc) {
>                       surface->res.coherent = true;
> -                     ret = surface->res.func->dirty_alloc(&surface->res);
> +                     if (surface->res.dirty == NULL)
> +                             ret = 
> surface->res.func->dirty_alloc(&surface->res);
>               }
>               ttm_bo_unreserve(&bo->tbo);
>       }

LGTM.

Reviewed-by: Maaz Mombasawala <[email protected]>

-- 
Maaz Mombasawala <[email protected]>

Reply via email to