drm/amd/amdgpu: fix the kfd pre_reset sequence in sriov

The KFD pre_reset should be called before reset been executed, it will
hold the lock to prevent other rocm process to sent the packlage to hiq
during host execute the real reset on the HW

Signed-off-by: shaoyunl <shaoyun.liu@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
shaoyunl 2021-11-05 12:34:14 -04:00 committed by Alex Deucher
parent 4fc30ea780
commit 9f4f2c1a35

View File

@ -4293,8 +4293,6 @@ static int amdgpu_device_reset_sriov(struct amdgpu_device *adev,
if (r) if (r)
return r; return r;
amdgpu_amdkfd_pre_reset(adev);
/* Resume IP prior to SMC */ /* Resume IP prior to SMC */
r = amdgpu_device_ip_reinit_early_sriov(adev); r = amdgpu_device_ip_reinit_early_sriov(adev);
if (r) if (r)
@ -5030,8 +5028,7 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,
cancel_delayed_work_sync(&tmp_adev->delayed_init_work); cancel_delayed_work_sync(&tmp_adev->delayed_init_work);
if (!amdgpu_sriov_vf(tmp_adev)) amdgpu_amdkfd_pre_reset(tmp_adev);
amdgpu_amdkfd_pre_reset(tmp_adev);
/* /*
* Mark these ASICs to be reseted as untracked first * Mark these ASICs to be reseted as untracked first