]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/sun4i: backend: fix error pointer dereference
authorEthan Tidmore <ethantidmore06@gmail.com>
Tue, 17 Feb 2026 01:48:01 +0000 (19:48 -0600)
committerChen-Yu Tsai <wens@kernel.org>
Tue, 24 Feb 2026 17:52:42 +0000 (01:52 +0800)
The function drm_atomic_get_plane_state() can return an error pointer
and is not checked for it. Add error pointer check.

Detected by Smatch:
drivers/gpu/drm/sun4i/sun4i_backend.c:496 sun4i_backend_atomic_check() error:
'plane_state' dereferencing possible ERR_PTR()

Fixes: 96180dde23b79 ("drm/sun4i: backend: Add a custom atomic_check for the frontend")
Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
Reviewed-by: Chen-Yu Tsai <wens@kernel.org>
Link: https://patch.msgid.link/20260217014801.60760-1-ethantidmore06@gmail.com
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
drivers/gpu/drm/sun4i/sun4i_backend.c

index 40405a52a073afe74b837fc7718012ac66d9d9a3..6391bdc94a5c2aa612cb15eec3015be0aafbe416 100644 (file)
@@ -491,6 +491,9 @@ static int sun4i_backend_atomic_check(struct sunxi_engine *engine,
        drm_for_each_plane_mask(plane, drm, crtc_state->plane_mask) {
                struct drm_plane_state *plane_state =
                        drm_atomic_get_plane_state(state, plane);
+               if (IS_ERR(plane_state))
+                       return PTR_ERR(plane_state);
+
                struct sun4i_layer_state *layer_state =
                        state_to_sun4i_layer_state(plane_state);
                struct drm_framebuffer *fb = plane_state->fb;