Am 21.10.2016 um 22:45 schrieb Alex Deucher: > Flush any outstanding thermal work before tearing down > the dpm driver. > > Signed-off-by: Alex Deucher <alexander.deucher at amd.com> Reviewed-by: Christian König <christian.koenig at amd.com>. > --- > drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 2 ++ > drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 2 ++ > drivers/gpu/drm/amd/amdgpu/si_dpm.c | 2 ++ > 3 files changed, 6 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c > index 6ecfc48..b090895 100644 > --- a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c > +++ b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c > @@ -6294,6 +6294,8 @@ static int ci_dpm_sw_fini(void *handle) > { > struct amdgpu_device *adev = (struct amdgpu_device *)handle; > > + flush_work(&adev->pm.dpm.thermal.work); > + > mutex_lock(&adev->pm.mutex); > amdgpu_pm_sysfs_fini(adev); > ci_dpm_fini(adev); > diff --git a/drivers/gpu/drm/amd/amdgpu/kv_dpm.c b/drivers/gpu/drm/amd/amdgpu/kv_dpm.c > index 42e5c94..190bce8 100644 > --- a/drivers/gpu/drm/amd/amdgpu/kv_dpm.c > +++ b/drivers/gpu/drm/amd/amdgpu/kv_dpm.c > @@ -3063,6 +3063,8 @@ static int kv_dpm_sw_fini(void *handle) > { > struct amdgpu_device *adev = (struct amdgpu_device *)handle; > > + flush_work(&adev->pm.dpm.thermal.work); > + > mutex_lock(&adev->pm.mutex); > amdgpu_pm_sysfs_fini(adev); > kv_dpm_fini(adev); > diff --git a/drivers/gpu/drm/amd/amdgpu/si_dpm.c b/drivers/gpu/drm/amd/amdgpu/si_dpm.c > index 9172133..21ed3db 100644 > --- a/drivers/gpu/drm/amd/amdgpu/si_dpm.c > +++ b/drivers/gpu/drm/amd/amdgpu/si_dpm.c > @@ -7779,6 +7779,8 @@ static int si_dpm_sw_fini(void *handle) > { > struct amdgpu_device *adev = (struct amdgpu_device *)handle; > > + flush_work(&adev->pm.dpm.thermal.work); > + > mutex_lock(&adev->pm.mutex); > amdgpu_pm_sysfs_fini(adev); > si_dpm_fini(adev);