[AMD Official Use Only - General] Reviewed-by: Evan Quan <[email protected]>
> -----Original Message----- > From: Yang Yingliang <[email protected]> > Sent: Thursday, November 17, 2022 11:00 PM > To: [email protected] > Cc: Deucher, Alexander <[email protected]>; Quan, Evan > <[email protected]>; [email protected] > 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 <[email protected]> > --- > 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
