[PATCH] drm/amdgpu: fix pci device refcount leak
Quan, Evan
Evan.Quan at amd.com
Fri Nov 18 01:54:58 UTC 2022
[AMD Official Use Only - General]
Reviewed-by: Evan Quan <evan.quan at amd.com>
> -----Original Message-----
> From: Yang Yingliang <yangyingliang at huawei.com>
> Sent: Thursday, November 17, 2022 11:00 PM
> To: amd-gfx at lists.freedesktop.org
> Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Quan, Evan
> <Evan.Quan at amd.com>; yangyingliang at huawei.com
> Subject: [PATCH] drm/amdgpu: fix pci device refcount leak
>
> As comment of pci_get_domain_bus_and_slot() says, it returns
> a pci device with refcount increment, when finish using it,
> the caller must decrement the reference count by calling
> pci_dev_put().
>
> So before returning from amdgpu_device_resume|suspend_display_audio(),
> pci_dev_put() is called to avoid refcount leak.
>
> Fixes: 3f12acc8d6d4 ("drm/amdgpu: put the audio codec into suspend state
> before gpu reset V3")
> Signed-off-by: Yang Yingliang <yangyingliang at huawei.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 64510898eedd..69e73fef1ab2 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -5027,6 +5027,8 @@ static void
> amdgpu_device_resume_display_audio(struct amdgpu_device *adev)
> pm_runtime_enable(&(p->dev));
> pm_runtime_resume(&(p->dev));
> }
> +
> + pci_dev_put(p);
> }
>
> static int amdgpu_device_suspend_display_audio(struct amdgpu_device
> *adev)
> @@ -5065,6 +5067,7 @@ static int
> amdgpu_device_suspend_display_audio(struct amdgpu_device *adev)
>
> if (expires < ktime_get_mono_fast_ns()) {
> dev_warn(adev->dev, "failed to suspend display
> audio\n");
> + pci_dev_put(p);
> /* TODO: abort the succeeding gpu reset? */
> return -ETIMEDOUT;
> }
> @@ -5072,6 +5075,7 @@ static int
> amdgpu_device_suspend_display_audio(struct amdgpu_device *adev)
>
> pm_runtime_disable(&(p->dev));
>
> + pci_dev_put(p);
> return 0;
> }
>
> --
> 2.25.1
More information about the amd-gfx
mailing list