Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:
- [High] The patch introduces dead code and fails to fix the NULL pointer 
dereference it was intended to resolve.
--

--- Patch [1]: Patch "drm/vmwgfx: Set surface-framebuffer GEM objects" has been 
added to the 6.18-stable tree ---
commit ffe31da5836d4a9255ecd4b72a2e8e4b2fcaa31f
Author: [email protected] <[email protected]>

drm/vmwgfx: Set surface-framebuffer GEM objects

This commit sets struct drm_framebuffer.obj[0] to the allocated GEM buffer
object for surface framebuffers. This is intended to prevent a NULL-pointer
dereference in the client's vmap helpers.

Link: https://patch.msgid.link/[email protected]

> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c 
> b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> index 54ea1b513950a..d32ce1cb579e6 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> @@ -553,6 +553,9 @@ static int vmw_kms_new_framebuffer_surface(struct 
> vmw_private *dev_priv,
>       memcpy(&vfbs->uo, uo, sizeof(vfbs->uo));
>       vmw_user_object_ref(&vfbs->uo);
>  
> +     if (vfbs->uo.buffer)
> +             vfbs->base.base.obj[0] = &vfbs->uo.buffer->tbo.base;
> +

[Severity: High]
Is this condition ever met for surface framebuffers?

Looking at vmw_user_object_lookup() in drivers/gpu/drm/vmwgfx/vmwgfx_resource.c,
whenever a surface is successfully resolved, the buffer is explicitly
unreferenced and uo->buffer becomes NULL:

drivers/gpu/drm/vmwgfx/vmwgfx_resource.c:vmw_user_object_lookup() {
    ...
    if (uo->surface)
        vmw_user_bo_unref(&uo->buffer);
    ...
}

Since vmw_kms_new_framebuffer_surface() is only used when uo->surface is
valid, does vfbs->uo.buffer always evaluate to NULL here, leaving the GEM
object unassigned and the original crash unresolved?

Would it be more appropriate to use vmw_user_object_buffer(&vfbs->uo) to fall
back to returning the surface's guest_memory_bo when uo->buffer is NULL?

>       *out = &vfbs->base;
>  
>       ret = drm_framebuffer_init(dev, &vfbs->base.base,

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/2026082037-dig-poppy-40df@gregkh?part=1

Reply via email to