drm/amd/powerplay: add dpm force multiple levels on cz/tonga/fiji/polaris (v2)

Eric Huang jinhuieric.huang at amd.com
Tue May 10 17:40:17 UTC 2016


Hi Dan,

It is for avoiding the last char of newline. I will change it.

Thanks,
Eric

On 16-05-10 06:51 AM, Dan Carpenter wrote:
> Hello Eric Huang,
>
> The patch 5632708f4452: "drm/amd/powerplay: add dpm force multiple
> levels on cz/tonga/fiji/polaris (v2)" from Apr 12, 2016, leads to the
> following static checker warning:
>
> 	drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c:368 amdgpu_set_pp_dpm_sclk()
> 	warn: why is the last element skipped?
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
>     356  static ssize_t amdgpu_set_pp_dpm_sclk(struct device *dev,
>     357                  struct device_attribute *attr,
>     358                  const char *buf,
>     359                  size_t count)
>     360  {
>     361          struct drm_device *ddev = dev_get_drvdata(dev);
>     362          struct amdgpu_device *adev = ddev->dev_private;
>     363          int ret;
>     364          long level;
>     365          uint32_t i, mask = 0;
>     366          char sub_str[2];
>     367
>     368          for (i = 0; i < strlen(buf) - 1; i++) {
>
> strlen() returns the number of characters not counting the NUL
> terminator.  I guess this assumes that the last character is a newline?
> Could we check for that instead?
>
>     369                  sub_str[0] = *(buf + i);
>     370                  sub_str[1] = '\0';
>     371                  ret = kstrtol(sub_str, 0, &level);
>     372
>     373                  if (ret) {
>     374                          count = -EINVAL;
>     375                          goto fail;
>     376                  }
>     377                  mask |= 1 << level;
>     378          }
>     379
>     380          if (adev->pp_enabled)
>     381                  amdgpu_dpm_force_clock_level(adev, PP_SCLK, mask);
>     382  fail:
>     383          return count;
>     384  }
>
> There are a couple other:
> drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c:412 amdgpu_set_pp_dpm_mclk() warn: why is the last element skipped?
> drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c:456 amdgpu_set_pp_dpm_pcie() warn: why is the last element skipped?
>
> regards,
> dan carpenter



More information about the dri-devel mailing list