drm/amd/display: add a NULL pointer check
authorSung-huai Wang <danny.wang@amd.com>
Tue, 6 Jun 2023 06:28:38 +0000 (14:28 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 23 Jun 2023 19:40:40 +0000 (15:40 -0400)
[Why & How]

We have to check if stream is properly initialized before calling
find_matching_pll(), otherwise we might end up trying to deferecence a
NULL pointer.

Cc: stable@vger.kernel.org # 6.1+
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Acked-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: Sung-huai Wang <danny.wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c

index 8088558861836a73d07a41f8ffba46f7fd55892a..e115ff91aaaaefe5b9dbd094acc8bfccb7bd079e 100644 (file)
@@ -974,10 +974,12 @@ enum dc_status resource_map_phy_clock_resources(
                || dc_is_virtual_signal(pipe_ctx->stream->signal))
                pipe_ctx->clock_source =
                                dc->res_pool->dp_clock_source;
-       else
-               pipe_ctx->clock_source = find_matching_pll(
-                       &context->res_ctx, dc->res_pool,
-                       stream);
+       else {
+               if (stream && stream->link && stream->link->link_enc)
+                       pipe_ctx->clock_source = find_matching_pll(
+                               &context->res_ctx, dc->res_pool,
+                               stream);
+       }
 
        if (pipe_ctx->clock_source == NULL)
                return DC_NO_CLOCK_SOURCE_RESOURCE;