[PATCH v2] drivers/amd/pm: check the return value of amdgpu_bo_kmap

Alex Deucher alexdeucher at gmail.com
Fri Sep 30 14:42:43 UTC 2022


On Sat, Sep 24, 2022 at 6:20 PM Li Zhong <floridsleeves at gmail.com> wrote:
>
> amdgpu_bo_kmap() returns error when fails to map buffer object. Add the
> error check and propagate the error.
>
> Signed-off-by: Li Zhong <floridsleeves at gmail.com>
> ---
>
> v2: revise the compile error

Applied.  Thanks!

>
>  drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c       | 5 ++++-
>  drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c | 5 ++++-
>  2 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c b/drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c
> index 8fd0782a2b20..f5e08b60f66e 100644
> --- a/drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c
> +++ b/drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c
> @@ -1384,13 +1384,16 @@ static int kv_dpm_enable(struct amdgpu_device *adev)
>  static void kv_dpm_disable(struct amdgpu_device *adev)
>  {
>         struct kv_power_info *pi = kv_get_pi(adev);
> +       int err;
>
>         amdgpu_irq_put(adev, &adev->pm.dpm.thermal.irq,
>                        AMDGPU_THERMAL_IRQ_LOW_TO_HIGH);
>         amdgpu_irq_put(adev, &adev->pm.dpm.thermal.irq,
>                        AMDGPU_THERMAL_IRQ_HIGH_TO_LOW);
>
> -       amdgpu_kv_smc_bapm_enable(adev, false);
> +       err = amdgpu_kv_smc_bapm_enable(adev, false);
> +       if (err)
> +               DRM_ERROR("amdgpu_kv_smc_bapm_enable failed\n");
>
>         if (adev->asic_type == CHIP_MULLINS)
>                 kv_enable_nb_dpm(adev, false);
> diff --git a/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c
> index 1eb4e613b27a..ec055858eb95 100644
> --- a/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c
> +++ b/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c
> @@ -1485,6 +1485,7 @@ static int pp_get_prv_buffer_details(void *handle, void **addr, size_t *size)
>  {
>         struct pp_hwmgr *hwmgr = handle;
>         struct amdgpu_device *adev = hwmgr->adev;
> +       int err;
>
>         if (!addr || !size)
>                 return -EINVAL;
> @@ -1492,7 +1493,9 @@ static int pp_get_prv_buffer_details(void *handle, void **addr, size_t *size)
>         *addr = NULL;
>         *size = 0;
>         if (adev->pm.smu_prv_buffer) {
> -               amdgpu_bo_kmap(adev->pm.smu_prv_buffer, addr);
> +               err = amdgpu_bo_kmap(adev->pm.smu_prv_buffer, addr);
> +               if (err)
> +                       return err;
>                 *size = adev->pm.smu_prv_buffer_size;
>         }
>
> --
> 2.25.1
>


More information about the amd-gfx mailing list