<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<p style="font-family:Arial;font-size:10pt;color:#0078D7;margin:15pt;" align="Left">
[AMD Official Use Only - Internal Distribution Only]<br>
</p>
<br>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
yeah, they need some fixes.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Alex<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Pelloux-prayer, Pierre-eric <Pierre-eric.Pelloux-prayer@amd.com><br>
<b>Sent:</b> Tuesday, December 17, 2019 1:56 PM<br>
<b>To:</b> Alex Deucher <alexdeucher@gmail.com>; amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org><br>
<b>Cc:</b> Deucher, Alexander <Alexander.Deucher@amd.com><br>
<b>Subject:</b> Re: [PATCH 3/5] drm/amdgpu/smu: add metrics table lock for navi</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Hi Alex,<br>
<br>
Isn't this patch missing something like this:<br>
<br>
    pr_info("Failed to export SMU metrics table!\n");<br>
+   mutex_unlock(&smu->metrics_lock);<br>
    return ret;<br>
<br>
to release the lock in case of error?<br>
<br>
Regards,<br>
Pierre-Eric <br>
<br>
<br>
On 17/12/2019 15:55, Alex Deucher wrote:<br>
> To protect access to the metrics table.<br>
> <br>
> Bug: <a href="https://gitlab.freedesktop.org/drm/amd/issues/900">https://gitlab.freedesktop.org/drm/amd/issues/900</a><br>
> Signed-off-by: Alex Deucher <alexander.deucher@amd.com><br>
> ---<br>
>  drivers/gpu/drm/amd/powerplay/navi10_ppt.c | 2 ++<br>
>  1 file changed, 2 insertions(+)<br>
> <br>
> diff --git a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c<br>
> index 15403b7979d6..102fddda925b 100644<br>
> --- a/drivers/gpu/drm/amd/powerplay/navi10_ppt.c<br>
> +++ b/drivers/gpu/drm/amd/powerplay/navi10_ppt.c<br>
> @@ -564,6 +564,7 @@ static int navi10_get_metrics_table(struct smu_context *smu,<br>
>        struct smu_table_context *smu_table= &smu->smu_table;<br>
>        int ret = 0;<br>
>  <br>
> +     mutex_lock(&smu->metrics_lock);<br>
>        if (!smu_table->metrics_time || time_after(jiffies, smu_table->metrics_time + msecs_to_jiffies(100))) {<br>
>                ret = smu_update_table(smu, SMU_TABLE_SMU_METRICS, 0,<br>
>                                (void *)smu_table->metrics_table, false);<br>
> @@ -575,6 +576,7 @@ static int navi10_get_metrics_table(struct smu_context *smu,<br>
>        }<br>
>  <br>
>        memcpy(metrics_table, smu_table->metrics_table, sizeof(SmuMetrics_t));<br>
> +     mutex_unlock(&smu->metrics_lock);<br>
>  <br>
>        return ret;<br>
>  }<br>
> <br>
</div>
</span></font></div>
</div>
</body>
</html>