drm/rockchip: vop: Fix call to crtc reset helper
authorJonas Karlman <jonas@kwiboo.se>
Wed, 21 Jun 2023 22:33:20 +0000 (22:33 +0000)
committerHeiko Stuebner <heiko@sntech.de>
Sat, 12 Aug 2023 21:53:35 +0000 (23:53 +0200)
Allocation of crtc_state may fail in vop_crtc_reset, causing an invalid
pointer to be passed to __drm_atomic_helper_crtc_reset.

Fix this by adding a NULL check of crtc_state, similar to other drivers.

Fixes: 01e2eaf40c9d ("drm/rockchip: Convert to using __drm_atomic_helper_crtc_reset() for reset.")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20230621223311.2239547-4-jonas@kwiboo.se
drivers/gpu/drm/rockchip/rockchip_drm_vop.c

index 8e89d78342e939a2d9d5fba2c930e95a4a4bd4e2..4872aecda066f8d403c87151080eb282bbd8dda7 100644 (file)
@@ -1629,7 +1629,10 @@ static void vop_crtc_reset(struct drm_crtc *crtc)
        if (crtc->state)
                vop_crtc_destroy_state(crtc, crtc->state);
 
-       __drm_atomic_helper_crtc_reset(crtc, &crtc_state->base);
+       if (crtc_state)
+               __drm_atomic_helper_crtc_reset(crtc, &crtc_state->base);
+       else
+               __drm_atomic_helper_crtc_reset(crtc, NULL);
 }
 
 #ifdef CONFIG_DRM_ANALOGIX_DP