* [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
[parent not found: <BN6PR12MB182648D32C4125E3124C7C8AF2200-/b2+HYfkarSCndJ3FSsNdQdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>]
* 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
[parent not found: <c8ca42f2-1237-d13c-ad30-dd42a5d850f2-5C7GfCeVMHo@public.gmane.org>]
* 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
[parent not found: <6e85fe6c-ff85-cf10-be5b-a6f411f8b83d-5C7GfCeVMHo@public.gmane.org>]
* 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
[parent not found: <6ac8f56c-8782-901a-35f9-d54fac563000-5C7GfCeVMHo@public.gmane.org>]
* 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
[parent not found: <a33f198c-10fc-4976-67f3-5243029da52c-5C7GfCeVMHo@public.gmane.org>]
* 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
[parent not found: <80a8e63b-6b84-c880-ba96-58534d3fff44-5C7GfCeVMHo@public.gmane.org>]
* 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