amdgpu_fence_driver_hw_fini() internally attempts to disable
a few interrupts but this can fail if amdgpu_irq_disable_all() was
called first.

Push the call to amdgpu_irq_disable_all() later.

Signed-off-by: Mario Limonciello <mario.limoncie...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index b3ca911e55d61..71b783b4abf39 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -4655,7 +4655,6 @@ void amdgpu_device_fini_hw(struct amdgpu_device *adev)
        }
 
        /* disable all interrupts */
-       amdgpu_irq_disable_all(adev);
        if (adev->mode_info.mode_config_initialized) {
                if (!drm_drv_uses_atomic_modeset(adev_to_drm(adev)))
                        drm_helper_force_disable_all(adev_to_drm(adev));
@@ -4663,6 +4662,7 @@ void amdgpu_device_fini_hw(struct amdgpu_device *adev)
                        drm_atomic_helper_shutdown(adev_to_drm(adev));
        }
        amdgpu_fence_driver_hw_fini(adev);
+       amdgpu_irq_disable_all(adev);
 
        if (adev->pm.sysfs_initialized)
                amdgpu_pm_sysfs_fini(adev);
-- 
2.43.0

Reply via email to