]> git.hungrycats.org Git - linux/commitdiff
drm/rockchip: vop: Fix a dereferenced before check warning
authorAndy Yan <andy.yan@rock-chips.com>
Mon, 21 Oct 2024 07:28:06 +0000 (15:28 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 22 Nov 2024 14:37:28 +0000 (15:37 +0100)
[ Upstream commit ab1c793f457f740ab7108cc0b1340a402dbf484d ]

The 'state' can't be NULL, we should check crtc_state.

Fix warning:
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1096
vop_plane_atomic_async_check() warn: variable dereferenced before check
'state' (see line 1077)

Fixes: 5ddb0bd4ddc3 ("drm/atomic: Pass the full state to planes async atomic check and update")
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20241021072818.61621-1-andyshrk@163.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/rockchip/rockchip_drm_vop.c

index b2289a523c408d965c7dd4ba202d5f058b61a830..e5b2112af13814342c2e2a222166f27a5a8808e5 100644 (file)
@@ -1080,10 +1080,10 @@ static int vop_plane_atomic_async_check(struct drm_plane *plane,
        if (!plane->state->fb)
                return -EINVAL;
 
-       if (state)
-               crtc_state = drm_atomic_get_existing_crtc_state(state,
-                                                               new_plane_state->crtc);
-       else /* Special case for asynchronous cursor updates. */
+       crtc_state = drm_atomic_get_existing_crtc_state(state, new_plane_state->crtc);
+
+       /* Special case for asynchronous cursor updates. */
+       if (!crtc_state)
                crtc_state = plane->crtc->state;
 
        return drm_atomic_helper_check_plane_state(plane->state, crtc_state,