From: Wayne Lin <[email protected]>

[ Upstream commit b1904ed480cee3f9f4036ea0e36d139cb5fee2d6 ]

[Why & How]
Check whether assigned timing generator is NULL or not before
accessing its funcs to prevent NULL dereference.

Reviewed-by: Jun Lei <[email protected]>
Acked-by: Hersen Wu <[email protected]>
Signed-off-by: Wayne Lin <[email protected]>
Tested-by: Daniel Wheeler <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c 
b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
index bb09243758fe3..71b10b45a9b9e 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c
@@ -492,7 +492,7 @@ uint32_t dc_stream_get_vblank_counter(const struct 
dc_stream_state *stream)
        for (i = 0; i < MAX_PIPES; i++) {
                struct timing_generator *tg = 
res_ctx->pipe_ctx[i].stream_res.tg;
 
-               if (res_ctx->pipe_ctx[i].stream != stream)
+               if (res_ctx->pipe_ctx[i].stream != stream || !tg)
                        continue;
 
                return tg->funcs->get_frame_count(tg);
@@ -551,7 +551,7 @@ bool dc_stream_get_scanoutpos(const struct dc_stream_state 
*stream,
        for (i = 0; i < MAX_PIPES; i++) {
                struct timing_generator *tg = 
res_ctx->pipe_ctx[i].stream_res.tg;
 
-               if (res_ctx->pipe_ctx[i].stream != stream)
+               if (res_ctx->pipe_ctx[i].stream != stream || !tg)
                        continue;
 
                tg->funcs->get_scanoutpos(tg,
-- 
2.42.0

Reply via email to