]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/amd/display: add NULL check to avoid kernel crash in DC.
authorRobin Singh <robin.singh@amd.com>
Tue, 9 Mar 2021 21:47:20 +0000 (16:47 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Apr 2021 20:51:40 +0000 (16:51 -0400)
[why]
There is case when the userspace like IGT test updates the custom
timings, i.e. the number of active lines CRTC property value,
and without committing the change, followed by
resetting the display, creating FB and plane to the pipe
and committing. The NULL pointer of pipe_ctx->plane_state
occurs and result in kernel crash. We need to avoid that.

[how]
add pointer check for the dc_plane_state of the pipe context in
the call of committing planes for stream in DC component.

Signed-off-by: Robin Singh <robin.singh@amd.com>
Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc.c

index a270879cbabace389edc911f6eb89c3e4065af0a..8f0a13807d050eedf3b74a88a87bf2d677d627f2 100644 (file)
@@ -2816,6 +2816,9 @@ static void commit_planes_for_stream(struct dc *dc,
        for (j = 0; j < dc->res_pool->pipe_count; j++) {
                struct pipe_ctx *pipe_ctx = &context->res_ctx.pipe_ctx[j];
 
+               if (!pipe_ctx->plane_state)
+                       continue;
+
                if (pipe_ctx->bottom_pipe || pipe_ctx->next_odm_pipe ||
                                !pipe_ctx->stream || pipe_ctx->stream != stream ||
                                !pipe_ctx->plane_state->update_flags.bits.addr_update)