* [PATCH] drm/amd/display: check plane state before validating fbc
[not found] ` <1511334698-5752-1-git-send-email-shirish.s12-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2017-11-22 7:13 ` S, Shirish
[not found] ` <BN6PR12MB182648D32C4125E3124C7C8AF2200-/b2+HYfkarSCndJ3FSsNdQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
0 siblings, 1 reply; 8+ messages in thread
From: S, Shirish @ 2017-11-22 7:13 UTC (permalink / raw)
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
From: Shirish S <shirish.s@amd.com>
While validation fbc, array_mode of the pipe is accessed without checking plane_state exists for it.
Causing to null pointer dereferencing followed by reboot when a crtc associated with external display(not
connected) is page flipped.
This patch adds a check for plane_state before using it to validate fbc.
Signed-off-by: Shirish S <shirish.s@amd.com>
Reviewed-by: Roman Li <Roman.Li@amd.com>
---
drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
index ee3b944..a6cd63a 100644
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
@@ -1724,6 +1724,10 @@ static enum dc_status validate_fbc(struct dc *dc,
if (pipe_ctx->stream->sink->link->psr_enabled)
return DC_ERROR_UNEXPECTED;
+ /* Nothing to compress */
+ if (!pipe_ctx->plane_state)
+ return DC_ERROR_UNEXPECTED;
+
/* Only for non-linear tiling */
if (pipe_ctx->plane_state->tiling_info.gfx8.array_mode == DC_ARRAY_LINEAR_GENERAL)
return DC_ERROR_UNEXPECTED;
--
2.7.4
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/amd/display: check plane state before validating fbc
[not found] ` <BN6PR12MB182648D32C4125E3124C7C8AF2200-/b2+HYfkarSCndJ3FSsNdQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
@ 2017-11-23 0:49 ` Harry Wentland
2017-11-24 22:07 ` Andrey Grodzovsky
1 sibling, 0 replies; 8+ messages in thread
From: Harry Wentland @ 2017-11-23 0:49 UTC (permalink / raw)
To: S, Shirish,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
On 2017-11-22 02:13 AM, S, Shirish wrote:
> From: Shirish S <shirish.s@amd.com>
>
> While validation fbc, array_mode of the pipe is accessed without checking plane_state exists for it.
> Causing to null pointer dereferencing followed by reboot when a crtc associated with external display(not
> connected) is page flipped.
>
> This patch adds a check for plane_state before using it to validate fbc.
>
> Signed-off-by: Shirish S <shirish.s@amd.com>
> Reviewed-by: Roman Li <Roman.Li@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Harry
> ---
> drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
> index ee3b944..a6cd63a 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
> @@ -1724,6 +1724,10 @@ static enum dc_status validate_fbc(struct dc *dc,
> if (pipe_ctx->stream->sink->link->psr_enabled)
> return DC_ERROR_UNEXPECTED;
>
> + /* Nothing to compress */
> + if (!pipe_ctx->plane_state)
> + return DC_ERROR_UNEXPECTED;
> +
> /* Only for non-linear tiling */
> if (pipe_ctx->plane_state->tiling_info.gfx8.array_mode == DC_ARRAY_LINEAR_GENERAL)
> return DC_ERROR_UNEXPECTED;
> --
> 2.7.4
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/amd/display: check plane state before validating fbc
[not found] ` <BN6PR12MB182648D32C4125E3124C7C8AF2200-/b2+HYfkarSCndJ3FSsNdQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2017-11-23 0:49 ` Harry Wentland
@ 2017-11-24 22:07 ` Andrey Grodzovsky
[not found] ` <c8ca42f2-1237-d13c-ad30-dd42a5d850f2-5C7GfCeVMHo@public.gmane.org>
1 sibling, 1 reply; 8+ messages in thread
From: Andrey Grodzovsky @ 2017-11-24 22:07 UTC (permalink / raw)
To: S, Shirish,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
sw.dl.display.sudo
The patch is good, but why validate_fbc is being called from
dce110_apply_ctx_to_hw (atomic_commit) ? It should be called from
atomic_check.
Thanks,
Andrey
On 2017-11-22 02:13 AM, S, Shirish wrote:
> From: Shirish S <shirish.s@amd.com>
>
> While validation fbc, array_mode of the pipe is accessed without checking plane_state exists for it.
> Causing to null pointer dereferencing followed by reboot when a crtc associated with external display(not
> connected) is page flipped.
>
> This patch adds a check for plane_state before using it to validate fbc.
>
> Signed-off-by: Shirish S <shirish.s@amd.com>
> Reviewed-by: Roman Li <Roman.Li@amd.com>
> ---
> drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
> index ee3b944..a6cd63a 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
> @@ -1724,6 +1724,10 @@ static enum dc_status validate_fbc(struct dc *dc,
> if (pipe_ctx->stream->sink->link->psr_enabled)
> return DC_ERROR_UNEXPECTED;
>
> + /* Nothing to compress */
> + if (!pipe_ctx->plane_state)
> + return DC_ERROR_UNEXPECTED;
> +
> /* Only for non-linear tiling */
> if (pipe_ctx->plane_state->tiling_info.gfx8.array_mode == DC_ARRAY_LINEAR_GENERAL)
> return DC_ERROR_UNEXPECTED;
> --
> 2.7.4
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/amd/display: check plane state before validating fbc
[not found] ` <c8ca42f2-1237-d13c-ad30-dd42a5d850f2-5C7GfCeVMHo@public.gmane.org>
@ 2017-11-26 16:57 ` Harry Wentland
[not found] ` <6e85fe6c-ff85-cf10-be5b-a6f411f8b83d-5C7GfCeVMHo@public.gmane.org>
0 siblings, 1 reply; 8+ messages in thread
From: Harry Wentland @ 2017-11-26 16:57 UTC (permalink / raw)
To: Andrey Grodzovsky, S, Shirish,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
sw.dl.display.sudo
On 2017-11-24 05:07 PM, Andrey Grodzovsky wrote:
> The patch is good, but why validate_fbc is being called from dce110_apply_ctx_to_hw (atomic_commit) ? It should be called from atomic_check.
>
Ideally yes, but I don't think this has any impact on bandwidth and mode validation, i.e. we should never fail to apply an atomic state, no matter whether we do FBC. If we let user-mode decide whether to do FBC or not it would need to be a property and check in atomic_check but I don't think it makes any sense to expose this outside DC.
Harry
> Thanks,
> Andrey
>
> On 2017-11-22 02:13 AM, S, Shirish wrote:
>> From: Shirish S <shirish.s@amd.com>
>>
>> While validation fbc, array_mode of the pipe is accessed without checking plane_state exists for it.
>> Causing to null pointer dereferencing followed by reboot when a crtc associated with external display(not
>> connected) is page flipped.
>>
>> This patch adds a check for plane_state before using it to validate fbc.
>>
>> Signed-off-by: Shirish S <shirish.s@amd.com>
>> Reviewed-by: Roman Li <Roman.Li@amd.com>
>> ---
>> drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>> index ee3b944..a6cd63a 100644
>> --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>> +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>> @@ -1724,6 +1724,10 @@ static enum dc_status validate_fbc(struct dc *dc,
>> if (pipe_ctx->stream->sink->link->psr_enabled)
>> return DC_ERROR_UNEXPECTED;
>> + /* Nothing to compress */
>> + if (!pipe_ctx->plane_state)
>> + return DC_ERROR_UNEXPECTED;
>> +
>> /* Only for non-linear tiling */
>> if (pipe_ctx->plane_state->tiling_info.gfx8.array_mode == DC_ARRAY_LINEAR_GENERAL)
>> return DC_ERROR_UNEXPECTED;
>> --
>> 2.7.4
>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/amd/display: check plane state before validating fbc
[not found] ` <6e85fe6c-ff85-cf10-be5b-a6f411f8b83d-5C7GfCeVMHo@public.gmane.org>
@ 2017-11-27 12:38 ` Andrey Grodzovsky
[not found] ` <6ac8f56c-8782-901a-35f9-d54fac563000-5C7GfCeVMHo@public.gmane.org>
0 siblings, 1 reply; 8+ messages in thread
From: Andrey Grodzovsky @ 2017-11-27 12:38 UTC (permalink / raw)
To: Harry Wentland, S, Shirish,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
sw.dl.display.sudo
On 11/26/2017 11:57 AM, Harry Wentland wrote:
> On 2017-11-24 05:07 PM, Andrey Grodzovsky wrote:
>> The patch is good, but why validate_fbc is being called from dce110_apply_ctx_to_hw (atomic_commit) ? It should be called from atomic_check.
>>
> Ideally yes, but I don't think this has any impact on bandwidth and mode validation, i.e. we should never fail to apply an atomic state, no matter whether we do FBC. If we let user-mode decide whether to do FBC or not it would need to be a property and check in atomic_check but I don't think it makes any sense to expose this outside DC.
>
> Harry
I see, as long as enable_fbc return code is ignored as it is today that ok.
Thanks,
Andrey
>
>> Thanks,
>> Andrey
>>
>> On 2017-11-22 02:13 AM, S, Shirish wrote:
>>> From: Shirish S <shirish.s@amd.com>
>>>
>>> While validation fbc, array_mode of the pipe is accessed without checking plane_state exists for it.
>>> Causing to null pointer dereferencing followed by reboot when a crtc associated with external display(not
>>> connected) is page flipped.
>>>
>>> This patch adds a check for plane_state before using it to validate fbc.
>>>
>>> Signed-off-by: Shirish S <shirish.s@amd.com>
>>> Reviewed-by: Roman Li <Roman.Li@amd.com>
>>> ---
>>> drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 4 ++++
>>> 1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>>> index ee3b944..a6cd63a 100644
>>> --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>>> +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>>> @@ -1724,6 +1724,10 @@ static enum dc_status validate_fbc(struct dc *dc,
>>> if (pipe_ctx->stream->sink->link->psr_enabled)
>>> return DC_ERROR_UNEXPECTED;
>>> + /* Nothing to compress */
>>> + if (!pipe_ctx->plane_state)
>>> + return DC_ERROR_UNEXPECTED;
>>> +
>>> /* Only for non-linear tiling */
>>> if (pipe_ctx->plane_state->tiling_info.gfx8.array_mode == DC_ARRAY_LINEAR_GENERAL)
>>> return DC_ERROR_UNEXPECTED;
>>> --
>>> 2.7.4
>>>
>>> _______________________________________________
>>> amd-gfx mailing list
>>> amd-gfx@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/amd/display: check plane state before validating fbc
[not found] ` <6ac8f56c-8782-901a-35f9-d54fac563000-5C7GfCeVMHo@public.gmane.org>
@ 2017-11-27 14:28 ` Harry Wentland
[not found] ` <a33f198c-10fc-4976-67f3-5243029da52c-5C7GfCeVMHo@public.gmane.org>
0 siblings, 1 reply; 8+ messages in thread
From: Harry Wentland @ 2017-11-27 14:28 UTC (permalink / raw)
To: Andrey Grodzovsky, S, Shirish,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
sw.dl.display.sudo
On 2017-11-27 07:38 AM, Andrey Grodzovsky wrote:
>
>
> On 11/26/2017 11:57 AM, Harry Wentland wrote:
>> On 2017-11-24 05:07 PM, Andrey Grodzovsky wrote:
>>> The patch is good, but why validate_fbc is being called from dce110_apply_ctx_to_hw (atomic_commit) ? It should be called from atomic_check.
>>>
>> Ideally yes, but I don't think this has any impact on bandwidth and mode validation, i.e. we should never fail to apply an atomic state, no matter whether we do FBC. If we let user-mode decide whether to do FBC or not it would need to be a property and check in atomic_check but I don't think it makes any sense to expose this outside DC.
>>
>> Harry
>
> I see, as long as enable_fbc return code is ignored as it is today that ok.
>
Maybe we just shouldn't return an error code here. dce110_apply_ctx_to_hw probably shouldn't return one either then, and apply_single_controller_ctx_to_hw_plane (just a couple lines before enable_fbc) shouldn't fail. I might have to look at those sometime.
Harry
> Thanks,
> Andrey
>
>>
>>> Thanks,
>>> Andrey
>>>
>>> On 2017-11-22 02:13 AM, S, Shirish wrote:
>>>> From: Shirish S <shirish.s@amd.com>
>>>>
>>>> While validation fbc, array_mode of the pipe is accessed without checking plane_state exists for it.
>>>> Causing to null pointer dereferencing followed by reboot when a crtc associated with external display(not
>>>> connected) is page flipped.
>>>>
>>>> This patch adds a check for plane_state before using it to validate fbc.
>>>>
>>>> Signed-off-by: Shirish S <shirish.s@amd.com>
>>>> Reviewed-by: Roman Li <Roman.Li@amd.com>
>>>> ---
>>>> drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 4 ++++
>>>> 1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>>>> index ee3b944..a6cd63a 100644
>>>> --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>>>> +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>>>> @@ -1724,6 +1724,10 @@ static enum dc_status validate_fbc(struct dc *dc,
>>>> if (pipe_ctx->stream->sink->link->psr_enabled)
>>>> return DC_ERROR_UNEXPECTED;
>>>> + /* Nothing to compress */
>>>> + if (!pipe_ctx->plane_state)
>>>> + return DC_ERROR_UNEXPECTED;
>>>> +
>>>> /* Only for non-linear tiling */
>>>> if (pipe_ctx->plane_state->tiling_info.gfx8.array_mode == DC_ARRAY_LINEAR_GENERAL)
>>>> return DC_ERROR_UNEXPECTED;
>>>> --
>>>> 2.7.4
>>>>
>>>> _______________________________________________
>>>> amd-gfx mailing list
>>>> amd-gfx@lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/amd/display: check plane state before validating fbc
[not found] ` <a33f198c-10fc-4976-67f3-5243029da52c-5C7GfCeVMHo@public.gmane.org>
@ 2017-11-27 14:37 ` Andrey Grodzovsky
[not found] ` <80a8e63b-6b84-c880-ba96-58534d3fff44-5C7GfCeVMHo@public.gmane.org>
0 siblings, 1 reply; 8+ messages in thread
From: Andrey Grodzovsky @ 2017-11-27 14:37 UTC (permalink / raw)
To: Harry Wentland, S, Shirish,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
sw.dl.display.sudo
On 11/27/2017 09:28 AM, Harry Wentland wrote:
>
> On 2017-11-27 07:38 AM, Andrey Grodzovsky wrote:
>>
>> On 11/26/2017 11:57 AM, Harry Wentland wrote:
>>> On 2017-11-24 05:07 PM, Andrey Grodzovsky wrote:
>>>> The patch is good, but why validate_fbc is being called from dce110_apply_ctx_to_hw (atomic_commit) ? It should be called from atomic_check.
>>>>
>>> Ideally yes, but I don't think this has any impact on bandwidth and mode validation, i.e. we should never fail to apply an atomic state, no matter whether we do FBC. If we let user-mode decide whether to do FBC or not it would need to be a property and check in atomic_check but I don't think it makes any sense to expose this outside DC.
>>>
>>> Harry
>> I see, as long as enable_fbc return code is ignored as it is today that ok.
>>
> Maybe we just shouldn't return an error code here. dce110_apply_ctx_to_hw probably shouldn't return one either then, and apply_single_controller_ctx_to_hw_plane (just a couple lines before enable_fbc) shouldn't fail. I might have to look at those sometime.
>
> Harry
Well, it seems wrong to have a validation function which never fails or
it's return value ignored, maybe just merge validate_fbc into enable_fbc
, drop all the error codes and rename enable_fbc into try_enable_fbc
Thanks,
Andrey
>
>> Thanks,
>> Andrey
>>
>>>> Thanks,
>>>> Andrey
>>>>
>>>> On 2017-11-22 02:13 AM, S, Shirish wrote:
>>>>> From: Shirish S <shirish.s@amd.com>
>>>>>
>>>>> While validation fbc, array_mode of the pipe is accessed without checking plane_state exists for it.
>>>>> Causing to null pointer dereferencing followed by reboot when a crtc associated with external display(not
>>>>> connected) is page flipped.
>>>>>
>>>>> This patch adds a check for plane_state before using it to validate fbc.
>>>>>
>>>>> Signed-off-by: Shirish S <shirish.s@amd.com>
>>>>> Reviewed-by: Roman Li <Roman.Li@amd.com>
>>>>> ---
>>>>> drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 4 ++++
>>>>> 1 file changed, 4 insertions(+)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>>>>> index ee3b944..a6cd63a 100644
>>>>> --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>>>>> +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>>>>> @@ -1724,6 +1724,10 @@ static enum dc_status validate_fbc(struct dc *dc,
>>>>> if (pipe_ctx->stream->sink->link->psr_enabled)
>>>>> return DC_ERROR_UNEXPECTED;
>>>>> + /* Nothing to compress */
>>>>> + if (!pipe_ctx->plane_state)
>>>>> + return DC_ERROR_UNEXPECTED;
>>>>> +
>>>>> /* Only for non-linear tiling */
>>>>> if (pipe_ctx->plane_state->tiling_info.gfx8.array_mode == DC_ARRAY_LINEAR_GENERAL)
>>>>> return DC_ERROR_UNEXPECTED;
>>>>> --
>>>>> 2.7.4
>>>>>
>>>>> _______________________________________________
>>>>> amd-gfx mailing list
>>>>> amd-gfx@lists.freedesktop.org
>>>>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/amd/display: check plane state before validating fbc
[not found] ` <80a8e63b-6b84-c880-ba96-58534d3fff44-5C7GfCeVMHo@public.gmane.org>
@ 2017-11-27 14:56 ` Harry Wentland
0 siblings, 0 replies; 8+ messages in thread
From: Harry Wentland @ 2017-11-27 14:56 UTC (permalink / raw)
To: Andrey Grodzovsky, S, Shirish,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
sw.dl.display.sudo, Li, Roman
On 2017-11-27 09:37 AM, Andrey Grodzovsky wrote:
>
>
> On 11/27/2017 09:28 AM, Harry Wentland wrote:
>>
>> On 2017-11-27 07:38 AM, Andrey Grodzovsky wrote:
>>>
>>> On 11/26/2017 11:57 AM, Harry Wentland wrote:
>>>> On 2017-11-24 05:07 PM, Andrey Grodzovsky wrote:
>>>>> The patch is good, but why validate_fbc is being called from dce110_apply_ctx_to_hw (atomic_commit) ? It should be called from atomic_check.
>>>>>
>>>> Ideally yes, but I don't think this has any impact on bandwidth and mode validation, i.e. we should never fail to apply an atomic state, no matter whether we do FBC. If we let user-mode decide whether to do FBC or not it would need to be a property and check in atomic_check but I don't think it makes any sense to expose this outside DC.
>>>>
>>>> Harry
>>> I see, as long as enable_fbc return code is ignored as it is today that ok.
>>>
>> Maybe we just shouldn't return an error code here. dce110_apply_ctx_to_hw probably shouldn't return one either then, and apply_single_controller_ctx_to_hw_plane (just a couple lines before enable_fbc) shouldn't fail. I might have to look at those sometime.
>>
>> Harry
>
> Well, it seems wrong to have a validation function which never fails or it's return value ignored, maybe just merge validate_fbc into enable_fbc , drop all the error codes and rename enable_fbc into try_enable_fbc
This function just seems to mislabeled. decide_fbc might be better. It's only called from enable_fbc to decide whether or not to do FBC.
Roma, would it make sense to rename this function to avoid confusion?
Harry
>
> Thanks,
> Andrey
>
>>
>>> Thanks,
>>> Andrey
>>>
>>>>> Thanks,
>>>>> Andrey
>>>>>
>>>>> On 2017-11-22 02:13 AM, S, Shirish wrote:
>>>>>> From: Shirish S <shirish.s@amd.com>
>>>>>>
>>>>>> While validation fbc, array_mode of the pipe is accessed without checking plane_state exists for it.
>>>>>> Causing to null pointer dereferencing followed by reboot when a crtc associated with external display(not
>>>>>> connected) is page flipped.
>>>>>>
>>>>>> This patch adds a check for plane_state before using it to validate fbc.
>>>>>>
>>>>>> Signed-off-by: Shirish S <shirish.s@amd.com>
>>>>>> Reviewed-by: Roman Li <Roman.Li@amd.com>
>>>>>> ---
>>>>>> drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 4 ++++
>>>>>> 1 file changed, 4 insertions(+)
>>>>>>
>>>>>> diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>>>>>> index ee3b944..a6cd63a 100644
>>>>>> --- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>>>>>> +++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
>>>>>> @@ -1724,6 +1724,10 @@ static enum dc_status validate_fbc(struct dc *dc,
>>>>>> if (pipe_ctx->stream->sink->link->psr_enabled)
>>>>>> return DC_ERROR_UNEXPECTED;
>>>>>> + /* Nothing to compress */
>>>>>> + if (!pipe_ctx->plane_state)
>>>>>> + return DC_ERROR_UNEXPECTED;
>>>>>> +
>>>>>> /* Only for non-linear tiling */
>>>>>> if (pipe_ctx->plane_state->tiling_info.gfx8.array_mode == DC_ARRAY_LINEAR_GENERAL)
>>>>>> return DC_ERROR_UNEXPECTED;
>>>>>> --
>>>>>> 2.7.4
>>>>>>
>>>>>> _______________________________________________
>>>>>> amd-gfx mailing list
>>>>>> amd-gfx@lists.freedesktop.org
>>>>>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-11-27 14:56 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1511334698-5752-1-git-send-email-shirish.s12@gmail.com>
[not found] ` <1511334698-5752-1-git-send-email-shirish.s12-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-11-22 7:13 ` [PATCH] drm/amd/display: check plane state before validating fbc S, Shirish
[not found] ` <BN6PR12MB182648D32C4125E3124C7C8AF2200-/b2+HYfkarSCndJ3FSsNdQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2017-11-23 0:49 ` Harry Wentland
2017-11-24 22:07 ` Andrey Grodzovsky
[not found] ` <c8ca42f2-1237-d13c-ad30-dd42a5d850f2-5C7GfCeVMHo@public.gmane.org>
2017-11-26 16:57 ` Harry Wentland
[not found] ` <6e85fe6c-ff85-cf10-be5b-a6f411f8b83d-5C7GfCeVMHo@public.gmane.org>
2017-11-27 12:38 ` Andrey Grodzovsky
[not found] ` <6ac8f56c-8782-901a-35f9-d54fac563000-5C7GfCeVMHo@public.gmane.org>
2017-11-27 14:28 ` Harry Wentland
[not found] ` <a33f198c-10fc-4976-67f3-5243029da52c-5C7GfCeVMHo@public.gmane.org>
2017-11-27 14:37 ` Andrey Grodzovsky
[not found] ` <80a8e63b-6b84-c880-ba96-58534d3fff44-5C7GfCeVMHo@public.gmane.org>
2017-11-27 14:56 ` Harry Wentland
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox