Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:
- [Medium] The newly introduced `drm_gem_create_shadow_plane_state` callback is 
not added to the `DRM_GEM_SHADOW_PLANE_FUNCS` macro.
--

--- Patch [2]: [PATCH v2 02/61] drm/gem-atomic-helper: Create 
drm_gem_create_shadow_plane_state() ---
commit 04bcd76bbde0146f1fe95d41bdf27b75eecf6aaa
Author: Maxime Ripard <[email protected]>

drm/gem-atomic-helper: Create drm_gem_create_shadow_plane_state()
    
The GEM shadow-plane helpers only expose reset functions that handle
both the initial state allocation and the reset path. The new
atomic_create_state hook requires a function that only allocates and
initializes a pristine state. Create new helpers to allocate and
initialize a shadow plane state from scratch.

> diff --git a/include/drm/drm_gem_atomic_helper.h 
> b/include/drm/drm_gem_atomic_helper.h
> index 3e01c619a25e0..43657d8fb1c8c 100644
> --- a/include/drm/drm_gem_atomic_helper.h
> +++ b/include/drm/drm_gem_atomic_helper.h
> @@ -95,6 +95,9 @@ void __drm_gem_reset_shadow_plane(struct drm_plane *plane,
>                                 struct drm_shadow_plane_state 
> *shadow_plane_state);
>  
>  void drm_gem_reset_shadow_plane(struct drm_plane *plane);
> +void __drm_gem_shadow_plane_state_init(struct drm_plane *plane,
> +                                    struct drm_shadow_plane_state 
> *shadow_plane_state);
> +struct drm_plane_state *drm_gem_create_shadow_plane_state(struct drm_plane 
> *plane);

[Severity: Medium]
Should the DRM_GEM_SHADOW_PLANE_FUNCS macro in this file be updated to include
the newly introduced drm_gem_create_shadow_plane_state for the
.atomic_create_state hook?

Currently, the macro only sets .reset, .atomic_duplicate_state, and
.atomic_destroy_state:

include/drm/drm_gem_atomic_helper.h:DRM_GEM_SHADOW_PLANE_FUNCS {
#define DRM_GEM_SHADOW_PLANE_FUNCS \
        .reset = drm_gem_reset_shadow_plane, \
        .atomic_duplicate_state = drm_gem_duplicate_shadow_plane_state, \
        .atomic_destroy_state = drm_gem_destroy_shadow_plane_state
}

Without adding .atomic_create_state to this macro, any driver using it to
initialize their drm_plane_funcs will have .atomic_create_state left as NULL.

If a driver attempts to migrate to using drm_mode_config_create_initial_state()
or relies on .atomic_create_state for initial allocation without noticing this
omission, plane->state would remain NULL, which can lead to crashes from a
NULL pointer dereference.

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/[email protected]?part=2

Reply via email to