Commit 4560738a authored by Alex Deucher's avatar Alex Deucher

drm/amdgpu/dpm: flush any thermal work on fini

Flush any outstanding thermal work before tearing down
the dpm driver.
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e8d7515a
...@@ -6236,6 +6236,8 @@ static int ci_dpm_sw_fini(void *handle) ...@@ -6236,6 +6236,8 @@ static int ci_dpm_sw_fini(void *handle)
{ {
struct amdgpu_device *adev = (struct amdgpu_device *)handle; struct amdgpu_device *adev = (struct amdgpu_device *)handle;
flush_work(&adev->pm.dpm.thermal.work);
mutex_lock(&adev->pm.mutex); mutex_lock(&adev->pm.mutex);
amdgpu_pm_sysfs_fini(adev); amdgpu_pm_sysfs_fini(adev);
ci_dpm_fini(adev); ci_dpm_fini(adev);
......
...@@ -3063,6 +3063,8 @@ static int kv_dpm_sw_fini(void *handle) ...@@ -3063,6 +3063,8 @@ static int kv_dpm_sw_fini(void *handle)
{ {
struct amdgpu_device *adev = (struct amdgpu_device *)handle; struct amdgpu_device *adev = (struct amdgpu_device *)handle;
flush_work(&adev->pm.dpm.thermal.work);
mutex_lock(&adev->pm.mutex); mutex_lock(&adev->pm.mutex);
amdgpu_pm_sysfs_fini(adev); amdgpu_pm_sysfs_fini(adev);
kv_dpm_fini(adev); kv_dpm_fini(adev);
......
...@@ -7777,6 +7777,8 @@ static int si_dpm_sw_fini(void *handle) ...@@ -7777,6 +7777,8 @@ static int si_dpm_sw_fini(void *handle)
{ {
struct amdgpu_device *adev = (struct amdgpu_device *)handle; struct amdgpu_device *adev = (struct amdgpu_device *)handle;
flush_work(&adev->pm.dpm.thermal.work);
mutex_lock(&adev->pm.mutex); mutex_lock(&adev->pm.mutex);
amdgpu_pm_sysfs_fini(adev); amdgpu_pm_sysfs_fini(adev);
si_dpm_fini(adev); si_dpm_fini(adev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment