drm/rockchip: vop2: fix null pointer in plane_atomic_disable
If the vop2_plane_atomic_disable function is called with NULL as a state, accessing the old_pstate runs into a null pointer exception. However, the drm_atomic_helper_disable_planes_on_crtc function calls the atomic_disable callback with state NULL. Allow to disable a plane without passing a plane state by checking the old_pstate only if a state is passed. Signed-off-by: Michael Tretter <m.tretter@pengutronix.de> Signed-off-by: Heiko Stuebner <heiko@sntech.de> Link: https://patchwork.freedesktop.org/patch/msgid/20221028095206.2136601-2-m.tretter@pengutronix.de
This commit is contained in:
parent
553c5a429a
commit
471bf2406c
@ -996,13 +996,15 @@ static int vop2_plane_atomic_check(struct drm_plane *plane,
|
||||
static void vop2_plane_atomic_disable(struct drm_plane *plane,
|
||||
struct drm_atomic_state *state)
|
||||
{
|
||||
struct drm_plane_state *old_pstate = drm_atomic_get_old_plane_state(state, plane);
|
||||
struct drm_plane_state *old_pstate = NULL;
|
||||
struct vop2_win *win = to_vop2_win(plane);
|
||||
struct vop2 *vop2 = win->vop2;
|
||||
|
||||
drm_dbg(vop2->drm, "%s disable\n", win->data->name);
|
||||
|
||||
if (!old_pstate->crtc)
|
||||
if (state)
|
||||
old_pstate = drm_atomic_get_old_plane_state(state, plane);
|
||||
if (old_pstate && !old_pstate->crtc)
|
||||
return;
|
||||
|
||||
vop2_win_disable(win);
|
||||
|
Loading…
Reference in New Issue
Block a user