Re: [PATCH] drm/amd/display: Fix variable deferencing before NULL check in edp_setup_replay()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 1/8/2024 9:58 PM, Aurabindo Pillai wrote:


On 2024-01-08 11:19, Srinivasan Shanmugam wrote:
In edp_setup_replay(), 'struct dc *dc' & 'struct dmub_replay *replay'
was dereferenced before the pointer 'link' & 'replay' NULL check.

Fixes the below:
drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_edp_panel_control.c:947 edp_setup_replay() warn: variable dereferenced before check 'link' (see line 933)

Cc: Bhawanpreet Lakha <Bhawanpreet.Lakha@xxxxxxx>
Cc: Harry Wentland <harry.wentland@xxxxxxx>
Cc: Rodrigo Siqueira <Rodrigo.Siqueira@xxxxxxx>
Cc: Aurabindo Pillai <aurabindo.pillai@xxxxxxx>
Cc: Alex Deucher <alexander.deucher@xxxxxxx>
Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@xxxxxxx>
---
  .../dc/link/protocols/link_edp_panel_control.c        | 11 +++++++----
  1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c b/drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c
index 7f1196528218..046d3e205415 100644
--- a/drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c +++ b/drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c @@ -930,8 +930,8 @@ bool edp_get_replay_state(const struct dc_link *link, uint64_t *state)   bool edp_setup_replay(struct dc_link *link, const struct dc_stream_state *stream)
  {
      /* To-do: Setup Replay */
-    struct dc *dc = link->ctx->dc;
-    struct dmub_replay *replay = dc->res_pool->replay;
+    struct dc *dc;
+    struct dmub_replay *replay;
      int i;
      unsigned int panel_inst;
      struct replay_context replay_context = { 0 };
@@ -947,6 +947,10 @@ bool edp_setup_replay(struct dc_link *link, const struct dc_stream_state *stream
      if (!link)
          return false;
  +    dc = link->ctx->dc;
+
+    replay = dc->res_pool->replay;
+
      if (!replay)
          return false;
  @@ -975,8 +979,7 @@ bool edp_setup_replay(struct dc_link *link, const struct dc_stream_state *stream
        replay_context.line_time_in_ns = lineTimeInNs;
  -    if (replay)
-        link->replay_settings.replay_feature_enabled =
+    link->replay_settings.replay_feature_enabled =
              replay->funcs->replay_copy_settings(replay, link, &replay_context, panel_inst);
      if (link->replay_settings.replay_feature_enabled) {

Please add Cc: stable@xxxxxxxxxxxxxxx in description.

Sure Jay!, thanks for reviews! will add this in description.

Best regards,

Srini


Reviewed-by: Aurabindo Pillai <aurabindo.pillai@xxxxxxx>



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux