The variable dc->clk_mgr is checked in:
  if (dc->clk_mgr && dc->clk_mgr->funcs->get_clock)

This indicates dc->clk_mgr can be NULL.
However, it is dereferenced in:
  if (!dc->clk_mgr->funcs->get_clock)

To fix this possible null-pointer dereference, check dc->clk_mgr before
dereferencing it.

Reported-by: TOTE Robot <os...@tsinghua.edu.cn>
Signed-off-by: Tuo Li <isli...@gmail.com>
---
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c 
b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
index c545eddabdcc..3a7c7c7efa68 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
@@ -3635,7 +3635,7 @@ enum dc_status dcn10_set_clock(struct dc *dc,
                                dc->clk_mgr->funcs->get_clock(dc->clk_mgr,
                                                context, clock_type, 
&clock_cfg);
 
-       if (!dc->clk_mgr->funcs->get_clock)
+       if (dc->clk_mgr && !dc->clk_mgr->funcs->get_clock)
                return DC_FAIL_UNSUPPORTED_1;
 
        if (clk_khz > clock_cfg.max_clock_khz)
-- 
2.25.1

Reply via email to