Hi Alex, Isn't this patch missing something like this: pr_info("Failed to export SMU metrics table!\n"); + mutex_unlock(&smu->metrics_lock); return ret; to release the lock in case of error? Regards, Pierre-Eric On 17/12/2019 15:55, Alex Deucher wrote: > To protect access to the metrics table. > > Bug: https://gitlab.freedesktop.org/drm/amd/issues/900 > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/amd/powerplay/navi10_ppt.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c > index 15403b7979d6..102fddda925b 100644 > --- a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c > +++ b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c > @@ -564,6 +564,7 @@ static int navi10_get_metrics_table(struct smu_context *smu, > struct smu_table_context *smu_table= &smu->smu_table; > int ret = 0; > > + mutex_lock(&smu->metrics_lock); > if (!smu_table->metrics_time || time_after(jiffies, smu_table->metrics_time + msecs_to_jiffies(100))) { > ret = smu_update_table(smu, SMU_TABLE_SMU_METRICS, 0, > (void *)smu_table->metrics_table, false); > @@ -575,6 +576,7 @@ static int navi10_get_metrics_table(struct smu_context *smu, > } > > memcpy(metrics_table, smu_table->metrics_table, sizeof(SmuMetrics_t)); > + mutex_unlock(&smu->metrics_lock); > > return ret; > } > _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx