On Fri, Jan 17, 2020 at 12:59 PM Dor Askayo <dor.askayo@xxxxxxxxx> wrote: > > On Sat, Jan 4, 2020 at 2:23 PM Dor Askayo <dor.askayo@xxxxxxxxx> wrote: > > > > This allocation isn't required and can fail when resuming from suspend. > > > > Bug: https://gitlab.freedesktop.org/drm/amd/issues/1009 > > Signed-off-by: Dor Askayo <dor.askayo@xxxxxxxxx> > > --- > > drivers/gpu/drm/amd/display/dc/core/dc.c | 17 +++++++++-------- > > 1 file changed, 9 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c > > index dd4731ab935c..83ebb716166b 100644 > > --- a/drivers/gpu/drm/amd/display/dc/core/dc.c > > +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c > > @@ -2179,12 +2179,7 @@ void dc_set_power_state( > > enum dc_acpi_cm_power_state power_state) > > { > > struct kref refcount; > > - struct display_mode_lib *dml = kzalloc(sizeof(struct display_mode_lib), > > - GFP_KERNEL); > > - > > - ASSERT(dml); > > - if (!dml) > > - return; > > + struct display_mode_lib *dml; > > > > switch (power_state) { > > case DC_ACPI_CM_POWER_STATE_D0: > > @@ -2206,6 +2201,12 @@ void dc_set_power_state( > > * clean state, and dc hw programming optimizations will not > > * cause any trouble. > > */ > > + dml = kzalloc(sizeof(struct display_mode_lib), > > + GFP_KERNEL); > > + > > + ASSERT(dml); > > + if (!dml) > > + return; > > > > /* Preserve refcount */ > > refcount = dc->current_state->refcount; > > @@ -2219,10 +2220,10 @@ void dc_set_power_state( > > dc->current_state->refcount = refcount; > > dc->current_state->bw_ctx.dml = *dml; > > > > + kfree(dml); > > + > > break; > > } > > - > > - kfree(dml); > > } > > > > void dc_resume(struct dc *dc) > > -- > > 2.24.1 > > > > I've been running with this fix applied on top of Fedora's > 5.3.16-300.fc31.x86_64 kernel for the past two weeks, suspending > and resuming often. This the first time since I bought my RX 580 8GB > more than a year ago that I can suspend and resume reliably. > > I'd appreciate a quick review for the above, it really is a trivial change. > > Thanks, > Dor Bumping this up again. I've been running with this change for the past 20 days without issues. Thanks, Dor On Fri, Jan 17, 2020 at 12:59 PM Dor Askayo <dor.askayo@xxxxxxxxx> wrote: > > On Sat, Jan 4, 2020 at 2:23 PM Dor Askayo <dor.askayo@xxxxxxxxx> wrote: > > > > This allocation isn't required and can fail when resuming from suspend. > > > > Bug: https://gitlab.freedesktop.org/drm/amd/issues/1009 > > Signed-off-by: Dor Askayo <dor.askayo@xxxxxxxxx> > > --- > > drivers/gpu/drm/amd/display/dc/core/dc.c | 17 +++++++++-------- > > 1 file changed, 9 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c > > index dd4731ab935c..83ebb716166b 100644 > > --- a/drivers/gpu/drm/amd/display/dc/core/dc.c > > +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c > > @@ -2179,12 +2179,7 @@ void dc_set_power_state( > > enum dc_acpi_cm_power_state power_state) > > { > > struct kref refcount; > > - struct display_mode_lib *dml = kzalloc(sizeof(struct display_mode_lib), > > - GFP_KERNEL); > > - > > - ASSERT(dml); > > - if (!dml) > > - return; > > + struct display_mode_lib *dml; > > > > switch (power_state) { > > case DC_ACPI_CM_POWER_STATE_D0: > > @@ -2206,6 +2201,12 @@ void dc_set_power_state( > > * clean state, and dc hw programming optimizations will not > > * cause any trouble. > > */ > > + dml = kzalloc(sizeof(struct display_mode_lib), > > + GFP_KERNEL); > > + > > + ASSERT(dml); > > + if (!dml) > > + return; > > > > /* Preserve refcount */ > > refcount = dc->current_state->refcount; > > @@ -2219,10 +2220,10 @@ void dc_set_power_state( > > dc->current_state->refcount = refcount; > > dc->current_state->bw_ctx.dml = *dml; > > > > + kfree(dml); > > + > > break; > > } > > - > > - kfree(dml); > > } > > > > void dc_resume(struct dc *dc) > > -- > > 2.24.1 > > > > I've been running with this fix applied on top of Fedora's > 5.3.16-300.fc31.x86_64 kernel for > the past two weeks, suspending and resuming often. This the first time > since I bought my > RX 580 8GB more than a year ago that I can suspend and resume reliably. > > I'd appreciate a quick review for the above, it really is a trivial change. > > Thanks, > Dor _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel