From: Dmytro Laktyushkin <dmytro.laktyush...@amd.com>

Prevent null pointer access when checking odm tree.

Signed-off-by: Dmytro Laktyushkin <dmytro.laktyush...@amd.com>
Acked-by: Aurabindo Pillai <aurabindo.pil...@amd.com>
Cc: <sta...@vger.kernel.org>
---
 .../gpu/drm/amd/display/dc/dcn30/dcn30_resource.c    | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c 
b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c
index f227f4653a71..ed222a3d76c7 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c
@@ -2120,12 +2120,12 @@ static bool dcn30_internal_validate_bw(
 
                if (split[i]) {
                        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;
                                else if (old_pipe->next_odm_pipe)
                                        old_index = 
old_pipe->next_odm_pipe->pipe_idx;
                        } 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_index = 
old_pipe->bottom_pipe->bottom_pipe->pipe_idx;
                                else if (old_pipe->bottom_pipe &&
@@ -2165,10 +2165,12 @@ static bool dcn30_internal_validate_bw(
                                goto validate_fail;
                        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;
-                       else if (!odm && 
old_pipe->bottom_pipe->bottom_pipe->bottom_pipe &&
-                                               
old_pipe->bottom_pipe->bottom_pipe->bottom_pipe->plane_state == 
old_pipe->plane_state)
+                       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_index = 
old_pipe->bottom_pipe->bottom_pipe->bottom_pipe->pipe_idx;
                        else
                                old_index = -1;
-- 
2.25.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to