drm/amd/display: prevent null pointer access

Prevent null pointer access when checking odm tree.

Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Acked-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: <stable@vger.kernel.org>
This commit is contained in:
Dmytro Laktyushkin
2020-10-15 14:49:56 -04:00
committed by Alex Deucher
parent 13b5ca42ca
commit cadfd67c27

View File

@@ -2120,12 +2120,12 @@ static bool dcn30_internal_validate_bw(
if (split[i]) { if (split[i]) {
if (odm) { if (odm) {
if (split[i] == 4 && old_pipe->next_odm_pipe->next_odm_pipe) if (split[i] == 4 && old_pipe->next_odm_pipe && old_pipe->next_odm_pipe->next_odm_pipe)
old_index = old_pipe->next_odm_pipe->next_odm_pipe->pipe_idx; old_index = old_pipe->next_odm_pipe->next_odm_pipe->pipe_idx;
else if (old_pipe->next_odm_pipe) else if (old_pipe->next_odm_pipe)
old_index = old_pipe->next_odm_pipe->pipe_idx; old_index = old_pipe->next_odm_pipe->pipe_idx;
} else { } else {
if (split[i] == 4 && old_pipe->bottom_pipe->bottom_pipe && if (split[i] == 4 && old_pipe->bottom_pipe && old_pipe->bottom_pipe->bottom_pipe &&
old_pipe->bottom_pipe->bottom_pipe->plane_state == old_pipe->plane_state) old_pipe->bottom_pipe->bottom_pipe->plane_state == old_pipe->plane_state)
old_index = old_pipe->bottom_pipe->bottom_pipe->pipe_idx; old_index = old_pipe->bottom_pipe->bottom_pipe->pipe_idx;
else if (old_pipe->bottom_pipe && else if (old_pipe->bottom_pipe &&
@@ -2165,9 +2165,11 @@ static bool dcn30_internal_validate_bw(
goto validate_fail; goto validate_fail;
newly_split[pipe_4to1->pipe_idx] = true; newly_split[pipe_4to1->pipe_idx] = true;
if (odm && old_pipe->next_odm_pipe->next_odm_pipe->next_odm_pipe) if (odm && old_pipe->next_odm_pipe && old_pipe->next_odm_pipe->next_odm_pipe
&& old_pipe->next_odm_pipe->next_odm_pipe->next_odm_pipe)
old_index = old_pipe->next_odm_pipe->next_odm_pipe->next_odm_pipe->pipe_idx; old_index = old_pipe->next_odm_pipe->next_odm_pipe->next_odm_pipe->pipe_idx;
else if (!odm && old_pipe->bottom_pipe->bottom_pipe->bottom_pipe && else if (!odm && old_pipe->bottom_pipe && old_pipe->bottom_pipe->bottom_pipe &&
old_pipe->bottom_pipe->bottom_pipe->bottom_pipe &&
old_pipe->bottom_pipe->bottom_pipe->bottom_pipe->plane_state == old_pipe->plane_state) old_pipe->bottom_pipe->bottom_pipe->bottom_pipe->plane_state == old_pipe->plane_state)
old_index = old_pipe->bottom_pipe->bottom_pipe->bottom_pipe->pipe_idx; old_index = old_pipe->bottom_pipe->bottom_pipe->bottom_pipe->pipe_idx;
else else