[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <2bf3f20c-cbbd-525b-5bd4-61e6d2d8a677@amd.com>
Date: Mon, 12 Mar 2018 19:10:56 -0400
From: Andrey Grodzovsky <Andrey.Grodzovsky@....com>
To: "Li, Roman" <Roman.Li@....com>,
David Binderman <dcb314@...mail.com>,
"Deucher, Alexander" <Alexander.Deucher@....com>,
"Koenig, Christian" <Christian.Koenig@....com>,
"Zhou, David(ChunMing)" <David1.Zhou@....com>,
"airlied@...ux.ie" <airlied@...ux.ie>,
"amd-gfx@...ts.freedesktop.org" <amd-gfx@...ts.freedesktop.org>,
"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"Wentland, Harry" <Harry.Wentland@....com>
Subject: Re:
linux-4.16-rc5/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c:1723]:
(warning) Possible null pointer dereference: pipe_ctx
The check before alone is not enough for a case where there is another
bug introduced so that
context->stream_count is not in sync with actual number of streams
across entire resource_context.
At least assert indeed should be there.
Andrey
On 03/12/2018 07:06 PM, Li, Roman wrote:
> There is a check just before for-loop that should ensure pipe_ctx is not null:
>
> /* Only supports single display */
> if (context->stream_count != 1)
> return false;
>
> To remove the subject warning - we can rather add an assert:
> assert(pipe_ctx);
>
> Thanks,
> Roman
>
> -----Original Message-----
> From: Grodzovsky, Andrey
> Sent: Monday, March 12, 2018 6:23 PM
> To: David Binderman <dcb314@...mail.com>; Deucher, Alexander <Alexander.Deucher@....com>; Koenig, Christian <Christian.Koenig@....com>; Zhou, David(ChunMing) <David1.Zhou@....com>; airlied@...ux.ie; amd-gfx@...ts.freedesktop.org; dri-devel@...ts.freedesktop.org; linux-kernel@...r.kernel.org; Wentland, Harry <Harry.Wentland@....com>; Li, Roman <Roman.Li@....com>
> Subject: Re: linux-4.16-rc5/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c:1723]: (warning) Possible null pointer dereference: pipe_ctx
>
>
>
> On 03/12/2018 06:22 AM, David Binderman wrote:
>> hello there,
>>
>> Source code is
>>
>>
>> for (i = 0; i < dc->res_pool->pipe_count; i++) {
>> if (res_ctx->pipe_ctx[i].stream) {
>> pipe_ctx = &res_ctx->pipe_ctx[i];
>> *pipe_idx = i;
>> break;
>> }
>> }
> Indeed something like
>
> if (!pipe_ctx)
> return false;
>
> seems the right thing here.
>
> Harry, Roman , your opinion ?
>
> Andrey
>
>> /* Only supports eDP */
>> if (pipe_ctx->stream->sink->link->connector_signal !=
>> SIGNAL_TYPE_EDP)
>> return false;
>>
>> Suggest add some code to deal with the case that the for loop doesn't
>> find what it is looking for and so pipe_ctx is NULL.
>>
>> Regards
>>
>> David Binderman
>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx@...ts.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
Powered by blists - more mailing lists