* [PATCH] drm/amd/display: Fix variable deferencing before NULL check in edp_setup_replay()
@ 2024-01-08 16:19 Srinivasan Shanmugam
2024-01-08 16:28 ` Aurabindo Pillai
0 siblings, 1 reply; 3+ messages in thread
From: Srinivasan Shanmugam @ 2024-01-08 16:19 UTC (permalink / raw)
To: Rodrigo Siqueira, Aurabindo Pillai
Cc: Alex Deucher, Bhawanpreet Lakha, Srinivasan Shanmugam, amd-gfx,
Harry Wentland
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@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Cc: Aurabindo Pillai <aurabindo.pillai@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
---
.../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) {
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] drm/amd/display: Fix variable deferencing before NULL check in edp_setup_replay()
2024-01-08 16:19 [PATCH] drm/amd/display: Fix variable deferencing before NULL check in edp_setup_replay() Srinivasan Shanmugam
@ 2024-01-08 16:28 ` Aurabindo Pillai
2024-01-08 16:40 ` SRINIVASAN SHANMUGAM
0 siblings, 1 reply; 3+ messages in thread
From: Aurabindo Pillai @ 2024-01-08 16:28 UTC (permalink / raw)
To: Srinivasan Shanmugam, Rodrigo Siqueira
Cc: Alex Deucher, Harry Wentland, Bhawanpreet Lakha, amd-gfx
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@amd.com>
> Cc: Harry Wentland <harry.wentland@amd.com>
> Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
> Cc: Aurabindo Pillai <aurabindo.pillai@amd.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
> ---
> .../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@vger.kernel.org in description.
Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] drm/amd/display: Fix variable deferencing before NULL check in edp_setup_replay()
2024-01-08 16:28 ` Aurabindo Pillai
@ 2024-01-08 16:40 ` SRINIVASAN SHANMUGAM
0 siblings, 0 replies; 3+ messages in thread
From: SRINIVASAN SHANMUGAM @ 2024-01-08 16:40 UTC (permalink / raw)
To: Aurabindo Pillai, Rodrigo Siqueira
Cc: Alex Deucher, Harry Wentland, Bhawanpreet Lakha, amd-gfx
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@amd.com>
>> Cc: Harry Wentland <harry.wentland@amd.com>
>> Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
>> Cc: Aurabindo Pillai <aurabindo.pillai@amd.com>
>> Cc: Alex Deucher <alexander.deucher@amd.com>
>> Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
>> ---
>> .../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@vger.kernel.org in description.
Sure Jay!, thanks for reviews! will add this in description.
Best regards,
Srini
>
> Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-01-08 16:40 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-08 16:19 [PATCH] drm/amd/display: Fix variable deferencing before NULL check in edp_setup_replay() Srinivasan Shanmugam
2024-01-08 16:28 ` Aurabindo Pillai
2024-01-08 16:40 ` SRINIVASAN SHANMUGAM
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox