If migration vma setup, but failed before start sdma memory copy, e.g. process is killed, don't wait for sdma fence done. Signed-off-by: Philip Yang <Philip.Yang@xxxxxxx> --- drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c index 6b810863f6ba..19b08247ba8a 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c @@ -460,10 +460,12 @@ svm_migrate_vma_to_vram(struct amdgpu_device *adev, struct svm_range *prange, } if (migrate.cpages) { - svm_migrate_copy_to_vram(adev, prange, &migrate, &mfence, - scratch); - migrate_vma_pages(&migrate); - svm_migrate_copy_done(adev, mfence); + r = svm_migrate_copy_to_vram(adev, prange, &migrate, &mfence, + scratch); + if (!r) { + migrate_vma_pages(&migrate); + svm_migrate_copy_done(adev, mfence); + } migrate_vma_finalize(&migrate); } @@ -663,10 +665,12 @@ svm_migrate_vma_to_ram(struct amdgpu_device *adev, struct svm_range *prange, pr_debug("cpages %ld\n", migrate.cpages); if (migrate.cpages) { - svm_migrate_copy_to_ram(adev, prange, &migrate, &mfence, - scratch); - migrate_vma_pages(&migrate); - svm_migrate_copy_done(adev, mfence); + r = svm_migrate_copy_to_ram(adev, prange, &migrate, &mfence, + scratch); + if (!r) { + migrate_vma_pages(&migrate); + svm_migrate_copy_done(adev, mfence); + } migrate_vma_finalize(&migrate); } else { pr_debug("failed collect migrate device pages [0x%lx 0x%lx]\n", -- 2.17.1 _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx