drm/amd/display: fix null pointer deref when plugging in display
authorAurabindo Pillai <aurabindo.pillai@amd.com>
Fri, 8 Oct 2021 20:07:45 +0000 (16:07 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 13 Oct 2021 18:14:35 +0000 (14:14 -0400)
[Why&How]
When system boots in headless mode, connecting a 4k display creates a
null pointer dereference due to hubp for a certain plane being null.
Add a condition to check for null hubp before dereferencing it.

Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c

index 01a90ba..2936a33 100644 (file)
@@ -969,7 +969,8 @@ void dcn30_set_disp_pattern_generator(const struct dc *dc,
                /* turning off DPG */
                pipe_ctx->plane_res.hubp->funcs->set_blank(pipe_ctx->plane_res.hubp, false);
                for (mpcc_pipe = pipe_ctx->bottom_pipe; mpcc_pipe; mpcc_pipe = mpcc_pipe->bottom_pipe)
-                       mpcc_pipe->plane_res.hubp->funcs->set_blank(mpcc_pipe->plane_res.hubp, false);
+                       if (mpcc_pipe->plane_res.hubp)
+                               mpcc_pipe->plane_res.hubp->funcs->set_blank(mpcc_pipe->plane_res.hubp, false);
 
                stream_res->opp->funcs->opp_set_disp_pattern_generator(stream_res->opp, test_pattern, color_space,
                                color_depth, solid_color, width, height, offset);