Skip duplicate VKMS mode-config suspend/resume while an internal reset is in progress. This removes the remaining reset_domain->sem -> clientlist_mutex edge without changing the lock order documented by amdgpu_lockdep_init().
Signed-off-by: Prike Liang <[email protected]> --- drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c index d6b51b3f216b..a49c7dda4c4e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c @@ -491,6 +491,9 @@ static int amdgpu_vkms_suspend(struct amdgpu_ip_block *ip_block) struct amdgpu_device *adev = ip_block->adev; int r; + if (amdgpu_in_reset(adev)) + return 0; + r = drm_mode_config_helper_suspend(adev_to_drm(adev)); if (r) return r; @@ -505,6 +508,9 @@ static int amdgpu_vkms_resume(struct amdgpu_ip_block *ip_block) r = amdgpu_vkms_hw_init(ip_block); if (r) return r; + if (amdgpu_in_reset(ip_block->adev)) + return 0; + return drm_mode_config_helper_resume(adev_to_drm(ip_block->adev)); } -- 2.34.1
