Re: [PATCH] drm/amdgpu: fix uninit-value in arcturus_log_thermal_throttling_event()

2020-08-06 Thread Alex Deucher
On Thu, Aug 6, 2020 at 11:59 AM Kevin Wang  wrote:
>
> when function arcturus_get_smu_metrics_data() call failed,
> it will cause the variable "throttler_status" isn't initialized before use.
>
> warning:
> powerplay/arcturus_ppt.c:2268:24: warning: ‘throttler_status’ may be used 
> uninitialized in this function [-Wmaybe-uninitialized]
>  2268 |   if (throttler_status & logging_label[throttler_idx].feature_mask) {
>
> Signed-off-by: Kevin Wang 

Reviewed-by: Alex Deucher 

> ---
>  drivers/gpu/drm/amd/powerplay/arcturus_ppt.c | 9 ++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c 
> b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
> index e58af84433c7..946dbc0db1b1 100644
> --- a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
> +++ b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
> @@ -2253,14 +2253,17 @@ static const struct throttling_logging_label {
>  };
>  static void arcturus_log_thermal_throttling_event(struct smu_context *smu)
>  {
> +   int ret;
> int throttler_idx, throtting_events = 0, buf_idx = 0;
> struct amdgpu_device *adev = smu->adev;
> uint32_t throttler_status;
> char log_buf[256];
>
> -   arcturus_get_smu_metrics_data(smu,
> - METRICS_THROTTLER_STATUS,
> - &throttler_status);
> +   ret = arcturus_get_smu_metrics_data(smu,
> +   METRICS_THROTTLER_STATUS,
> +   &throttler_status);
> +   if (ret)
> +   return;
>
> memset(log_buf, 0, sizeof(log_buf));
> for (throttler_idx = 0; throttler_idx < ARRAY_SIZE(logging_label);
> --
> 2.27.0
>
> ___
> 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


[PATCH] drm/amdgpu: fix uninit-value in arcturus_log_thermal_throttling_event()

2020-08-06 Thread Kevin Wang
when function arcturus_get_smu_metrics_data() call failed,
it will cause the variable "throttler_status" isn't initialized before use.

warning:
powerplay/arcturus_ppt.c:2268:24: warning: ‘throttler_status’ may be used 
uninitialized in this function [-Wmaybe-uninitialized]
 2268 |   if (throttler_status & logging_label[throttler_idx].feature_mask) {

Signed-off-by: Kevin Wang 
---
 drivers/gpu/drm/amd/powerplay/arcturus_ppt.c | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c 
b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
index e58af84433c7..946dbc0db1b1 100644
--- a/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
+++ b/drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
@@ -2253,14 +2253,17 @@ static const struct throttling_logging_label {
 };
 static void arcturus_log_thermal_throttling_event(struct smu_context *smu)
 {
+   int ret;
int throttler_idx, throtting_events = 0, buf_idx = 0;
struct amdgpu_device *adev = smu->adev;
uint32_t throttler_status;
char log_buf[256];
 
-   arcturus_get_smu_metrics_data(smu,
- METRICS_THROTTLER_STATUS,
- &throttler_status);
+   ret = arcturus_get_smu_metrics_data(smu,
+   METRICS_THROTTLER_STATUS,
+   &throttler_status);
+   if (ret)
+   return;
 
memset(log_buf, 0, sizeof(log_buf));
for (throttler_idx = 0; throttler_idx < ARRAY_SIZE(logging_label);
-- 
2.27.0

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx