]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/sysfb: Do not dereference NULL pointer in plane reset
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 17 Oct 2025 09:13:36 +0000 (11:13 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Sun, 26 Oct 2025 16:09:56 +0000 (17:09 +0100)
The plane state in __drm_gem_reset_shadow_plane() can be NULL. Do not
deref that pointer, but forward NULL to the other plane-reset helpers.
Clears plane->state to NULL.

v2:
- fix typo in commit description (Javier)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Fixes: b71565022031 ("drm/gem: Export implementation of shadow-plane helpers")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/dri-devel/aPIDAsHIUHp_qSW4@stanley.mountain/
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Melissa Wen <melissa.srw@gmail.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Cc: <stable@vger.kernel.org> # v5.15+
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patch.msgid.link/20251017091407.58488-1-tzimmermann@suse.de
drivers/gpu/drm/drm_gem_atomic_helper.c

index ebf305fb24f0c35103e6e052e5da3fe7d52cd3e8..6fb55601252fd11dc451893e36b1d3dd0fc629ee 100644 (file)
@@ -310,8 +310,12 @@ EXPORT_SYMBOL(drm_gem_destroy_shadow_plane_state);
 void __drm_gem_reset_shadow_plane(struct drm_plane *plane,
                                  struct drm_shadow_plane_state *shadow_plane_state)
 {
-       __drm_atomic_helper_plane_reset(plane, &shadow_plane_state->base);
-       drm_format_conv_state_init(&shadow_plane_state->fmtcnv_state);
+       if (shadow_plane_state) {
+               __drm_atomic_helper_plane_reset(plane, &shadow_plane_state->base);
+               drm_format_conv_state_init(&shadow_plane_state->fmtcnv_state);
+       } else {
+               __drm_atomic_helper_plane_reset(plane, NULL);
+       }
 }
 EXPORT_SYMBOL(__drm_gem_reset_shadow_plane);