summary refs log tree commit diff
path: root/drivers
diff options
context:
space:
mode:
authorgaba <gaba@amd.com>2023-03-02 19:03:56 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-07-23 13:49:40 +0200
commitfe26d0fa9408896e821d1c8dd2ab52171da03ed9 (patch)
tree1439ea88174f9624140a0cc2569ac848f83748d9 /drivers
parent8404d0e274ac1f780e29fa6380ad4e2f9c4bd3da (diff)
downloadlinux-fe26d0fa9408896e821d1c8dd2ab52171da03ed9.tar.gz
drm/amdgpu: avoid restore process run into dead loop.
commit 8a774fe912ff09e39c2d3a3589c729330113f388 upstream.

In restore process worker, pinned BO cause update PTE fail, then
the function re-schedule the restore_work. This will generate dead loop.

Signed-off-by: gaba <gaba@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
index da01c1424b4a..260e6a3316db 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -2737,6 +2737,9 @@ int amdgpu_amdkfd_gpuvm_restore_process_bos(void *info, struct dma_fence **ef)
 			if (!attachment->is_mapped)
 				continue;
 
+			if (attachment->bo_va->base.bo->tbo.pin_count)
+				continue;
+
 			kfd_mem_dmaunmap_attachment(mem, attachment);
 			ret = update_gpuvm_pte(mem, attachment, &sync_obj);
 			if (ret) {